您使用CDN加速静态资源时,CDN会将源站上的资源缓存到距离客户端最近的CDN节点上。当您访问该静态资源时,可直接从CDN的缓存节点上获取,有效避免通过较长的链路回源,提高资源访问效率。

默认缓存时间

如果您的源站和CDN控制台上均没有配置缓存策略,此时将遵循阿里云CDN的默认缓存规则。CDN的默认缓存时间最短为10秒,最长为3600秒,您可以在CDN控制台修改默认缓存时间。具体操作,请参见配置缓存过期时间
说明 设置的缓存时间长短会导致回源流量不一样,回源费用也有所不同,建议根据不同的业务需求设置缓存时长。设置的缓存时间过短,会导致CDN频繁回源,从而增加源站的流量消耗。
  • 默认缓存时间计算方法:t=(curtime-last_modified)×0.1。
  • 默认缓存时间取值范围:[10,3600]。
参数说明如下:
  • t:默认缓存时间,单位为秒。
  • curtime:当前时间。
  • last_modified:服务器上资源的最后修改时间。
举例说明如下:
  • 当对象last-modified20140801 00:00:00,当前时间为20140801 00:01:00时,(curtime-last_modified)×0.1=6s,则默认缓存时间为10s,因为最小缓存时间为10s。
  • 当对象last-modified20140801 00:00:00,当前时间为20140802 00:00:00时,(curtime-last_modified)×0.1=8640s,则默认缓存时间为3600s,因为最大缓存时间为3600s。
  • 当对象last-modified20140801 00:00:00,当前时间为20140801 00:10:00时,(curtime-last_modified)×0.1=60s,则默认缓存时间为60s。

默认缓存规则

  • 如果源站返回的数据中没有last-modified响应头,有ETag,则认为该对象为静态资源,CDN会将其默认缓存时间设置为10秒。
  • 如果源站返回的数据中没有last-modified响应头,也没有ETag,则认为该对象为动态资源,CDN会将其默认缓存时间设置为0,即不缓存,每次都回源获取资源。
说明 ETag表示资源标识。

缓存相关功能

通过缓存配置功能,您可以对域名执行如下操作。
功能 说明
配置缓存过期时间 您可以针对静态资源配置指定目录和文件后缀名的缓存过期时间,使其在CDN上按照缓存规则进行缓存。
配置状态码过期时间 您可以配置资源的指定目录或文件后缀名的状态码过期时间。
配置自定义HTTP响应头 您可以配置资源缓存过期的HTTP消息头。
配置自定义页面 您可以根据所需自定义HTTP或HTTPS响应状态码跳转的完整URL地址。
配置URI重写规则 您可以对请求的URI进行修改,实现302重定向到目标URI。
自定义Cachekey 您可以将访问同一个文件的一类请求转化为统一的Cachekey,避免不同请求缓存为不同文件的问题,降低回源频率。
配置跨域资源共享 您可以通过自定义HTTP响应头功能配置跨域资源共享。

最佳实践

基于WordPress的CDN设置,请参见CDN加速图文和视频类网站