WP站点优化-动静分离:什么是动静分离?如何部署动静分离?

前言

WordPress是一个基于PHP和MYSQL等的动态程序,动态程序的每一次渲染页面HTML都在无时不刻的处于计算当中。这也使得WordPress这样的程序不适合开启CDN静态缓存。因为一旦开启,评论、最新文章等就会延后甚至出错。而开启CDN全站加速不缓存,则更是速度加慢。相当于凭空增添一个反代,有一个木桶效应,最短的木板决定你站点的速度。

所以CDN可以用于静态资源的加速,而动态资源最好从源站直接获取,这样的数据最准确。即源站只负责处理动态数据,静态资源由CDN负责返回,即为动静分离。动态资源由源站返回,而静态资源由另一个部署在CDN的域名负责。

思考

部署动静分离的方法有很多,类似的插件也不计其数。而我的方法应该是比较便捷的。为了实现动静分离,我试用过很多同步插件到云存储,再修改链接。但由于同步速度、修改链接出错、效率不高、覆盖文件类型(一般只负责jpg)等原因,效果都不尽人意。

所以我的思路是用一个CDN全站加速代理源站,然后开启静态资源全缓存,缓存时间较长,然后配合WordPress本地插件,将所有静态资源文件全部指向CDN域名,即可实现动静分离。

部署

域名

我的域名是blog.daihan.top,我开启了一个子域名cdn.blog.daihan.top来专门负责CDN静态资源返回。

CDN配置

我采用的是又拍云CDN+云存储,又拍云的CDN缓存可以直接存储到云存储,并且又拍云的图片可以自主处理返回WebP图片,并且这样的处理是免费的。这点是我选择又拍云的主要原因。并且又拍云的速度表现还是比较优异的。

在又拍云开启一个CDN加速,加速源为自己的服务器,加速域名为子域名,开启加速。

然后配置缓存,全局开启缓存建议7Days以上,参数全跟随,回源请求头设定自己的博客原域名。配置云存储,将资源全部存到云存储里。记得开启WebP自适应。个人觉得这个相当好用。

不要开启301跟随,这个有可能导致出错。

源站配置

源站需要采取一个插件来重写静态资源的域名。我的加速插件自带这个功能,WP-Rocket可以全局重写文件域名,将域名添加即可。清除缓存。至此可以尝试静态资源有无指向CDN。

本文作者 : 呆憨 小咸鱼
本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议、注明出处!
本文链接 : https://blog.daihan.top/303.html

评论

  1. 童话
    iPhone Safari 14.0.3
    8月前
    2021-3-09 9:48:02

    这个动静分离这个 后面上传图片怎么同步到oss上面去呢 装插件吗

    • 呆憨 小咸鱼 博主
      Macintosh Safari 14.0.3
      8月前
      2021-3-12 18:31:51

      不需要 我采用的是直接CDN反代源站 每次图片上传到源站 然后采用插件修改图片链接到CDN反代域名上面 CDN域名设置了缓存 如果第一次CDN的缓存没有图片 会向源站获取图片来缓存 这样就达到了动静分离的目的 不需要任何上传插件ヾ(≧∇≦*)ゝ

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇