前言

WordPress是许多朋友建站的第一选择,因为它足够简单,生态丰富,并不需要多少技术就能轻轻松松搭建起来。然而,WordPress是非常吃性能的,如果不对站点进行优化,小VPS根本撑不起来并发。这时候就有人说了:我可以交给Cloudflare啊,Cloudflare可以帮助我全站加速呀。是的,但是WordPress的文章是动态生成的,如果你只是接入了Cloudflare开启小云朵,那么用户每次访问你的网站,CF的边缘节点都要回源到服务器获取内容,一样是解决不了问题,反而访问速度还会大大增加,本文,我将给大家介绍一下啊如何通过CF的Cache rules来配置缓存,实现网站秒开。

准备

  • 域名接入到CF
  • WordPress站点

配置

Wordpress开启伪静态

首先我们进入到WordPress后台,点击设置–>固定连接。
Dingtalk_20240924020856
再然后,固定链接结构选择自定义结构,我推荐使用这种数字ID,写法如下:

1
/%post_id%.html

Dingtalk_20240924020948
后台配置成这样也差不多了,当然如果你的服务器安装了Redis的话我推荐你开启Redis缓存,效果更佳。(插件安装Redis Object Cache并启用即可)

后台配置完之后我们还要配置伪静态规则,如果你使用的是宝塔面板,那将非常简单,只需要点击网站,在弹出的窗口中选择伪静态,点击倒三角选择WordPress,保存即可。

Dingtalk_20240924021927

就此,WordPress方面配置结束。

Cache Rules配置

我们首先要明确一下我们的目的,我们想要的有三点:

  • 后台、登录页面和搜索页面等动态内容页面不缓存
  • 登录的用户所访问的内容是回源的,不缓存的
  • 普通未登录访客所访问的内容为缓存的,不需要回源的

在明白了需求之后就很简单了,我们准对每一点需求配置一条合适的规则即可。

第一条:不缓存的目录

进入 CloudFlare 后台,点击对应的域名–>缓存–>Cache Rules–>创建规则,选择自定义筛选表达式

Dingtalk_20240924023051

可以通过表达式粘贴再修改,也可以根据自己的主题添加一些特殊的地址,表达式如下:

1
(http.request.full_uri wildcard "https://你的站点域名/wp-admin/*") or (http.request.full_uri wildcard "https://你的站点域名/*preview=true*") or (http.request.full_uri wildcard "https://你的站点域名/account/*") or (http.request.full_uri wildcard "https://你的站点域名/?s=*")

缓存资格和浏览器TTL都选择绕过缓存,随后点击部署,第一条规则完成。

Dingtalk_20240924023114

第二条:登录用户绕过缓存

进入 CloudFlare 后台,点击对应的域名–>缓存–>Cache Rules–>创建规则,选择自定义筛选表达式
Dingtalk_20240924023951
表达式:

1
(starts_with(http.request.full_uri, "https://你的站点域名/") and http.cookie contains "wordpress_sec_") or (starts_with(http.request.full_uri, "https://你的站点域名/") and http.cookie contains "wordpress_logged_in") or (starts_with(http.request.full_uri, "https://你的站点域名/") and http.cookie contains "comment_")

缓存资格和浏览器TTL都选择绕过缓存,随后点击部署,第一条规则完成。

Dingtalk_20240924023114

第三条:未登录用户缓存所有

同理创建规则
Dingtalk_20240924024323
表达式:

1
(starts_with(http.request.full_uri, "https://你的站点域名/") and not http.cookie contains "wordpress_sec_" and not http.cookie contains "wordpress_logged_in" and not http.cookie contains "comment_")

注意这第三条是缓存规则,缓存资格选择符合缓存条件。边缘TTL也就是CF边缘节点的缓存保存时间,如果内容更新快的话可以选择短一点时间,如果长期不更新可以选择长一点时间。

Dingtalk_20240924024356

浏览器TTL也就是浏览器缓存时间,这个大家随意,另外还有一下其他的配置,大家可以跟我的一样,也可以自行选择。

Dingtalk_20240924024415

Dingtalk_20240924024431

这时三条规则就配置好了,我们回到Cache Rules看看顺序,必须要按照这个顺序来。

Dingtalk_20240924024450

最后还需要在缓存–>配置–>清除所有内容,让缓存规则生效。

测试

未开启缓存:
Dingtalk_20240924025406
开启缓存:
Dingtalk_20240924025434

总结

优化好WordPress,小鸡也能带的动,加油吧。