作为全球著名的CDN供应商,Cloudflare(简称CF)托管了不计其数的网站,一般来说,CF默认缓存网站的图片、js、css等常见的小文件,但是当我们网站存在一些媒体文件如音视频时,就无法缓存了,F12开发者工具中点击我们想要缓存的文件就能发现Headers中会有一个cf-cache-status,这就是现在这个文件的CF缓存状态,常见的有以下几种
cf-cache-status:HIT:你的文件已经命中CF缓存。这表示用户获取文件的方式途径为从CF缓存服务器中获取而非你的源服务器,不消耗你的服务器资源。
cf-cache-status:MISS:CF已经在缓存服务器中查找了你所请求的文件,但是并没有找到,CF的缓存服务器将会回源至你的服务器中获取该文件,当下次请求时该文件就会显示HIT
cf-cache-status: BYPASS:CF已经被要求不缓存该文件,用户将直接从网站源服务器中获取文件,这个通常是因为请求的文件响应了NO-Cache header
cf-cache-status:EXPIRED:自上次缓存之后,文件的缓存期限已经过期,CF将会再度回源至网站源服务器进行获取文件,当下次请求时该文件就会显示HIT
cf-cache-status:DYNAMIC:这个文件默认不会缓存,也没有对应的缓存配置,用户将从网站源服务器获取该文件。
了解了CF缓存的5种状态,就好处理了。当你的文件显示cf-cache-status: DYNAMIC时你只需要在CF配置好你的page rules即可。比如说,我要缓存mp4文件我就可以这样设置page rules:https://你的域名/*.mp4*,
cache level;cache standard(标准缓存)
或者缓存某一目录下的全部文件
https://你的域名/需要缓存的目录/*
cache level:cache everything
这样你网站下不超过200m的文件就能缓存成功了。MP4后面加*是因为wordpress有时候请求mp4文件会加一些参数。
PS:cloud flare的免费版本只支持3条page rules,有需要的朋友可以购买付费版本。