如何让 Cloudflare 来缓存音频和视频文件?
在上一篇博文中, 我上传了一个 mp4 视频, 发现 wordpress 会自动用 HTML5 的video标签. 但是默认情况下, Cloudflare 是不会像图片, js, css 等其它文件一下缓存音频和视频文件的, 查了一下, 只支持以下文件扩展名的缓存:
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
但是没关系, 我们可以通过创建页面规则来缓存这些不在列表中的文件. 免费CLOUDFLARE用户最多只能创建3条, PRO用户能创建20条. 所以得好好利用.
*justyy.com/*.mp4* Browser Cache TTL: a year Cache Level: Cache Everything Edge Cache TTL: an hour
通过这个缓存所有的规则, mp4 文件就可以被正确的缓存了.. 考虑到音频视频文件一般情况下不太可能被更新, 所以可以大胆的设置缓存有效期为1年. mp4*后面可选匹配多个字符是为了兼容wordpress因为WP会在视频和音频URL地址后面加上参数, 如: a.mp4?_=1. 我们可以通过以下命令来验证一下:
curl -svo /dev/null https://justyy.com/wp-content/uploads/2016/07/有趣是最好的春药.mp4
在输出的命令中则会有:
CF-Cache-Status: HIT
这代表了已经被缓存了.