规则介绍
这套CloudFlare缓存规则带来的好处就是可以大大的缓解服务器压力,将几乎所有的静态资源都缓存在CloudFlare节点IP上,全球各地的访客都可以就近请求CloudFlare节点IP来浏览网站,由此达到网站载入速度的极致优化
一共是三条缓存规则,缺一不可,并且三条规则是要严格按照顺序排列生效才可以,三条规则主要实现的是:
- 不缓存指定的目录(如后台、搜索查询等等)。
- 登录状态以及发表过评论的不缓存。
- 只要不是登录状态或者发表过评论的请求一律缓存。
首先在Cloudflare后台找到缓存→Cache Rules→创建规则
第一条(可以起名“不缓存”)
具体规则配置如下图所示:
表达式为:
(starts_with(http.request.full_uri, "https://www.mezhiyu.com/admin/")) or (starts_with(http.request.full_uri, "https://www.mezhiyu.com/search/"))
符合上述条件的一律绕过缓存回源请求
第二条规则(可以起名为“登录评论不缓存”)
具体规则配置如下图所示:
表达式为:
(starts_with(http.request.full_uri, "https://www.mezhiyu.com/") and http.cookie contains "__typecho_authCode" and http.cookie contains "__typecho_uid") or (starts_with(http.request.full_uri, "https://www.mezhiyu.com/") and http.cookie contains "__typecho_remember_")
符合上述条件的一律绕过缓存回源请求,所以如下图配置:
保存即可。
这条规则其实就是通过当前Typecho站点的cookie来判断是登录状态还是发表过评论状态,一般来说这都是Typecho站点的标准,所以适用大多数的Typecho主题,如果你的Typecho主题是多用户模式的话,那可能就得根据需要来修改这条规则了,一般通过浏览器“开发者工具”调试就能获得具体的cookie,只能大家自己搞定了。
第三条规则(可以起名为“全站缓存”)
表达式为:
(starts_with(http.request.full_uri, "https://www.mezhiyu.com/") and not http.cookie contains "__typecho_authCode" and not http.cookie contains "__typecho_uid" and not http.cookie contains "__typecho_remember_") or (starts_with(http.request.full_uri, "https://www.mezhiyu.com/usr/uploads"))
这个规则跟第二条规则正好相反,凡不是登录状态或者留过言状态的请求一律缓存当前所有资源,评论留言要排除的原因就是否则会造成评论信息混乱,比如:A客户的留言信息被B客户看到并能直接发表评论。
因为第三条规则是缓存所有,所以下面的缓存配置就要配置一下了,不能是【绕过缓存了】,具体配置如下图所示:
CloudFlare里这个边缘TTL缓存指的就是CloudFlare节点IP上的缓存,所以这里配置的意思就是在节点IP上保留缓存资源7天的时间,除非你发布的文章需要经常修改变更,否则这个边缘TTL时间越长缓存命中率就越高,自然访客的访问速度就会一直保持非常快的体验。
这个浏览器TTL指的是在客户浏览器里保留缓存多久,一般这里的时间是一定要短于边缘TTL时间的,因为边缘TTL缓存我们可以通过CloudFlare后台清除缓存来情理掉,而这个浏览器TTL缓存是在客户电脑上的,我们是不可能清理的,所以最好的办法就是让其缓存时间短一些,超过这个时间就到边缘TTL上请求更新一下,最科学。
剩下的就是有关缓存的细节配置了,就不一一介绍了,大家参照上图勾选就是了,最后保存规则即可。
三条规则保存后,最后一步还要确认一下规则顺序如上图所示,否则规则生效就会出错哦,按照这个顺序就可以让CloudFlare来智能自动的缓存网站资源了,随着访客数量的增加,CloudFlare后台【分析日志】——【流量】里大家就可以看到缓存命中情况了。
别忘了把以上规则里的www.mezhiyu.com改成你自己博客的站点域名哦
暂无评论内容