快捷搜索:   nginx

Cloudflare自定义pagerule提高缓存命中率 开启Cache Everything缓存PHP动态页面 音视频

Cloudflare CDN 默认配置只能缓存静态文件, 比如 JS, CSS, 图片, 文档.如果我们需要提高Cloudfalre缓存命中率,那就需要通过自定义规则操作。

目前Cloudflare免费版默认支持的缓存文件类型如下:

blob.png

如果是动态的页面, 比如PHP,ASP这类请求,CLOUDFLARE默认不缓存,所以WP博客或者论坛系统,访客请求页面的时候每次都会回源到你的原始服务器,如果你不需要页面实时更新,当然我们不建议论坛开启,因为论坛系统开启全部缓存的话,可能用户发帖会很久才能显示, 这个比较适合不常更改内容的PHP网站使用,利用CLOUDFLARE 的页面规则设置 缓存所有内容.

另外你没看错,上面的表中是没有HTML的,也就是HTML默认是不进行缓存,如果需要缓存HTML也是需要自定义页面规则

免费用户可以使用最多3条页面规则,添加新的页面规则, 设置好URL模板, 然后就选择 Cache Everything.

题外话,我们的Cloudflare合作伙伴计划已经支持添加/修改页面规则,还支持一键自动优化,有需要可以访问 https://cdn.bnxb.com 直接使用,无须登陆Cloudflare官网对着一堆不知道干嘛的设置发呆了

blob.png

然后设置规则,域名可以使用*代表全部,比如用*.bnxb.com代表规则应用于全部前缀的域名,用bnxb.com/a*代表规则适用于a开头的文件夹下全部文件

blob.png

设置两条规则就行了,我上面是自定义的比较多,要提高缓存命中率,只要设置cache_level 项目为cache everything.

Edge TTL 时间是让 CLOUDFLARE服务器多久之后去你的原服务器检查内容是否要更新. 当然是越快越好, 可惜免费的最快能设置成 2小时, 而 PRO用户可以设置成 1 小时. 当然对于大多数是静态资源的网站来说是够用的.

在启用一天后 从统计数据上可以看出 更多的内容被 CLOUDFLARE 缓存了, 这意味着 对原服务器的请求大大减少了. 特别是对于流量有限制的用户来说, 这是很好的事. 特别是 CLOUDFLARE 免费用户已经很够用了.

cloudflare-cache-everything 几个域名开启 CloudFlare - 缓存所有 CloudFlare wordpress 互联网 网站信息与统计

如果 你的网站很多访问量; 如果你的流量有限; 如果你的网站经常招 DDOS 攻击; 或者 你对2小时更新一次动态页面无所谓, 或者你的网站大部分是静态资源; 你可以大胆的开启这个 Cache Everything 的功能.

当然, 你可以指定 wp-admin 或者 wp-* 下的URL 不进行缓存 – 设置Bypass Cache.不过这又要浪费一条规则了。


当然这个功能,我们的中文合作面板也正在开发中,敬请期待,目前已经完成CNAME接入,DNS接入管理,DNSEC设置,高级选项设置等功能开发

详见https://cdn.bnxb.com


另外顺便一提,音视频这类大文件的缓存,目前CF支持最大100M文件的缓存,对于不在上面表格中默认支持的后缀的文件,都需要通过设置自定义规则来实现

比如我要缓存mp4文件,可以这样设置

blob.png

因为音视频这类文件一般不会再更新,因此缓存时间尽量设置越长越好

mp4*后面可选匹配多个字符是为了兼容wordpress因为WP会在视频和音频URL地址后面加上参数, 如: a.mp4?_=1. 我们可以通过以下命令来验证一下:


curl -svo /dev/null https://bnxb.com/wp-content/uploads/2016/07/my.mp4

在输出的命令中则会有:


CF-Cache-Status: HIT

显示HIT命中缓存,这代表了已经被缓存了.

当然也可以用我们的在线header头获取工具查看有没有CF-Cache-Status: HIT的输出头

https://tool.bnxb.com/check-header/

blob.png

您可能还会对下面的文章感兴趣: