阿里云CDN深度使用之缓存设置
一直用阿里云CDN,开始也用过全站加速,因为部分原因最终用回了CDN,以为动态内容网站本身已经有缓存,今天主要说说,阿里云CDN的缓存是如何设置的。
之前不太了解缓存设置,只知道CDN是缓存静态文件,这里怎么理解这个静态文件呢?期初一直以为静态文件只是网站的css、js、jpg、html等文件,但实际并非如此,php文件虽然是动态处理语言,但是作为CDN而言,php也是属于静态文件的一种。
根据阿里云CDN的帮助文档,jpg、gif等图片文件不经常更新,那么缓存时间就应该设置长一点,比如一个月以上,css、js、html等经常更新的文件设置问稍短于1个月,比如一周、一天、甚至几十秒,而动态文件,如php、asp、jsp等设置为不缓存,即设置缓存时间为0。
但由于笔者网站的原因,头像等需要经常更新,设置图片1个月以上就不太合适,而我对于CSS/JS的缓存时间设置上也没有一定的概念,毕竟只是说稍短于一个月,php动态文件,我设置成了0秒,网站反而出现了一点小问题。
实际上,阿里云CDN有自己的默认缓存配置,都怪我粗心大意没有仔细去看,现在把图片拿来给你们看看。
如果你细心,你会发现,实际上,阿里云CDN对于默认缓存做了一定的处理,我建议你只看右边就行了,缓存过期时间?-否-然后才是控制台缓存配置,你完全可以不用进行缓存配置,只用默认就可以了,阿里云默认的CDN缓存是规则是:
缓存时间 = (当前时间-last-modified)*0.1,取值10s-3600s,小于10s的取10s,大于3600s的取3600s。
什么意思呢?想看这个几个单词什么意思,last-modified最后修改时间,要知道我们浏览网站的时候,第一访问某一资源会被记录资源的最后修改时间,这个last-modified就是最后修改时间,当第二次访问这个资源的时候,会比对资源是否有更新,如果没有更新则不改变原有缓存,节省网络传输资源量,如果有更新则重新发送资源。
阿里云CDN默认的缓存策略就是利用这个last-modified,利用当前时间减去最后修改时间乘以0.1,来作为默认的缓存时间,最大缓存时间为3600s,也就是1个小时,我本人觉得1个小时的缓存时间刚刚好,也不用去配置可以直接用。
所以你也不用看阿里云CDN的各种配置教程啥的,默认配置就足以加速你的网站,可以通过后台查看缓存的命中率。目前我的两个网站www.tarczp.com和www.fcrczp.com均已接入阿里云CDN,使用的默认缓存策略,加速效果明显。