您可以针对静态资源配置指定目录和文件后缀名的缓存过期时间和优先级,资源过期后,自动从CDN节点删除。通过本文,您可以了解资源在CDN上的缓存策略,以及缓存过期时间的配置方法。

背景信息

配置静态资源的缓存过期时间之前,建议您源站的内容不使用同名更新(即更新源站内容时采用不同的名称),而是以版本号的方式同步,即采用img-v1.0.jpg、img-v2.1.jpg的命名方式。

CDN节点上资源的缓存策略如下图所示。

说明

  • 您的源站如果没有配置缓存过期时间,且源站和CDN上也没有配置缓存策略,则CDN采用默认缓存时长,CDN的默认缓存时间是3600秒。您成功添加加速域名后,可以修改默认缓存时间。设置的缓存时间长短会导致回源流量不一样,费用也有所不同,建议根据不同的业务需求设置缓存时长。缓存时间设置的过短,会导致CDN频繁回源,从而会增加源站的流量消耗。
  • Cache的默认缓存策略用于配置文件过期时间,在此配置的优先级高于源站配置。如果源站未配置Cache,则支持按完整目录或文件后缀名两种方式设置。
  • CDN节点上缓存的资源,可能由于热度较低而被提前从节点删除。
  • 在源站响应给CDN节点的内容里面携带了etag信息,并且客户端请求也有携带if-match信息的情况下,如果if-match值=etag值,CDN节点会将缓存的内容直接响应给客户端;如果if-match值≠etag值,CDN节点将会先回源获取最新的内容,然后将最新的内容响应给客户端,同时在CDN节点上用最新的内容替代原先旧的内容。即客户端请求中的if-match信息与缓存文件中的etag信息的校验优先级高于CDN节点上配置的缓存规则。

推荐缓存配置

资源对应的缓存时间。过期时间最多设置为3年,建议您参照以下规则进行配置:

对于不经常更新的静态文件(如图片类型、应用下载类型等),建议您将缓存时间设置为1个月以上。
对于频繁更新的静态文件(如JS、CSS等),您可以根据实际业务情况设置。
对于动态文件(如PHP、JSP、ASP等),建议您将缓存时间设置为0s,即不缓存。

  • jpg,jpeg,png,bmp,gif,webp,ico图片类型缓存1天。
  • js,css,txt,xml,shtml,html,htm,csv,bat 文本类型缓存1天。
  • m3u8,m3u8类型缓存1小时。
  • avi,mkv,mp4,mov,lv,rm,rmvb,swf,mp3,wav,wmv,mi,aac 音视频类型缓存7天。
  • exe,deb,ipa,apk,sis,psd,dat 大文件类型缓存7天
  • 不缓存:php,jsp,asp,aspx

权重说明:

  • 取值范围:1~99间的整数。数字越大,优先级越高,优先生效。
  • 不推荐设置相同的权重,权重相同的两条缓存策略优先级随机。
  • 某一条缓存策略生效后,将不再匹配其他的缓存策略。