近期我的另一个站点套了层CF的cdn,主要是为了解决一些体积较小的视频文件播放问题,可是套上后却发现mp4文件不能被缓存。
查了下资料cloudflare默认缓存以下格式的文件:
css bmp tif ttf docx woff2 js pict tiff eot xlsx jpg csv eps woff xls jpeg doc ejs otf pptx gif pdf swf svg ps ico pls midi svgz class png ppt mid webp jar
好无奈,不过还好,cf有一个页面规则设置的地方,这里可以配置自己的缓存规则,然后我尝试了以下设置(如图):
*haibakeji.com/*.mp4* Browser Cache TTL: a year Cache Level: Cache Everything Edge Cache TTL: an hour
解释下,上面三个选项的意思是:
缓存规则:*haibakeji.com/*.mp4* 浏览器缓存时间:1年 缓存级别:缓存所有 边缘缓存时间:2小时 //这里最长可以是1个月,建议1个月
规则配置完毕点击 save and depoly 保存并生效。
然后我们就可以去测试了,这里使用curl命令来测试:
curl -svo /dev/null https://xxxxx.xxxx.com/xxx/xxx.mp4
或者打开chrome的调试,选择网络观察。
观察返回的结果,如果里面出现:
CF-Cache-Status: HIT
或者调试界面出现:
则代表命中缓存,也就是说缓存成功了。
需要注意的是:cf对于体积较大的视频文件可能不会缓存或者流量过的话也有可能会被禁止使用。同时免费版的cf账户,只能配置三条缓存规则,付费的pro用户可以创建20条规则。