【最佳实践】内容分发网络(CDN)配置缓存规则

2022-05-04 11:32:01 浏览数 (2)

​​Tips:部分CDN服务商会对部分内容默认设置为缓存状态(即在CDN配置界面缓存规则为空,但由于服务商默认缓存规则,CDN实际上缓存了这些内容)因此,本文的写作基于下述情况,即所有的内容默认均为不缓存状态(大部分CDN服务商都是如此),需要自行添加缓存规则。

第一步:我们认为所有站点的静态资源均可以被缓存且不具有任何风险:

类型:文件后缀 规则:gif|png|svg|webp|bmp|jpg|jpeg|ico|css|js|html|htm 时间:1天 高级:忽略参数,浏览器缓存 权重:99

第二步:我们认为所有站点的媒体资源均可以被缓存且不具有任何风险:

类型:文件后缀 规则:mp3|wma|flv|mp4|wmv|ogg|avi|m3u8|ts|doc|docx|xls|xlsx|ppt|pptx|txt|pdf|zip|exe|tat|swf|apk 时间:1天 高级:强制缓存,浏览器缓存 权重:99

对于大部分网站完成以上两项设置即可大幅度提升访问速度和减轻源站宽带消耗,如果需要更好的优化效果,请继续看

第三步:我们认为所有的网站都能够开启全站缓存,但是具有低风险,需要有一定的设置技巧:

类型:文件 规则:cacheall 时间:1天 高级:强制缓存,浏览器缓存 权重:50(推荐设置为50)

第四步:为网站后台和登录用户配置规则,以避开全站缓存,这里有两套方案:

方案一:如果你的网站没有会员中心,不需要用户登录等操作,只有管理员需要访问后台更新网站内容,那么设置网站管理员面板路径不缓存即可:

类型:目录 规则:/admin/(根据网站管理面板的实际地址填写) 时间:不缓存 高级:无 权重:80(高于全站缓存)

方案二:如果你的网站有会员中心,用户需要登录操作一些内容,例如购买,发帖,回复等操作,那么设置缓存以避开全站缓存,当然,管理员后台也是可以用cookie的方案来完成不缓存配置的:

类型:cookie 规则:cookie_name(需自行分析cookie_name后填写) 时间:不缓存 高级:无 权重:80(高于全站缓存)

第五步:网站的首页可能需要更快的更新频率,所以为首页设置更短的缓存时间:

类型:文件 规则:/ 时间:30分钟 高级:强制缓存 浏览器缓存 忽略参数 权重:70(高于全站缓存且低于不缓存的规则)​

至此,一套普遍适用的缓存规则就配置完成了,这一套配置可以达到最终的效果: 静态文件始终都会被缓存,所以会为源服务器节省大量的带宽; 未登录用户访问到网站全部会被缓存,无需取源,所以会特别的快,游客本身就占据网站访问量的大部分,所以这也大幅度降低了源站的资源开销; 用户一旦登录,那么就不会被缓存,可以随时看到网站的最新内容; 我们设置了首页较短的缓存时间,那么游客也可以在较短的时间内发现网站内容的更新,还同时具备了一定的CC穿透防御能力。​

​ Tips:每个CDN服务商所支持的缓存规则和能力不同,例如部分CDN服务商不支持按照cookie设置缓存规则、不支持权重分配等,在配置缓存规则时应视具体情况而定。

云屋Wiki原文地址:https://cloudhouse.top/archives/15.html

0 人点赞