缓存过期时间指资源在CDN节点上缓存的时长。CDN的默认缓存时间最短为10秒,最长为3600秒,资源过期后会自动从CDN节点删除,您向CDN节点发起的访问请求会被判定为无效,请求会回源站获取最新资源并缓存到CDN节点。您可以根据业务需求,按目录或文件后缀名配置静态资源的缓存过期时间。

背景信息

CDN节点上资源的缓存策略如下图所示。 缓存策略
源站是否设置了缓存规则 CDN控制台是否设置了缓存规则 CDN节点上的缓存行为
是,设置了cache-control:no-cache或cache-control:no-store 不涉及 遵循源站的缓存规则。即CDN节点不缓存源站资源,用户每次访问都需要回源,无法实现加速。
是,未设置cache-control:no-cache或cache-control:no-store
遵循CDN控制台设置的缓存规则。CDN控制台上设置的缓存规则的优先级由高至低为:权重配置>文件后缀名>目录。
说明
  • CDN从源站下载的某个资源同时匹配上两条权重相同的文件后缀名缓存规则和目录缓存规则时,因为文件后缀名缓存规则的优先级更高,所以只有文件后缀名缓存规则会生效。
  • 两条相同类型(文件后缀名类型或目录类型)和权重的缓存规则,生效优先级随机。
遵循源站的其他缓存规则。

源站返回的数据的响应头中如果同时携带了cache-control和expires这两个缓存规则,cache-control的优先级高于expires,即只有cache-control会实际生效。

遵循CDN控制台设置的缓存规则。CDN控制台上设置的缓存规则的优先级由高至低为:权重配置>文件后缀名>目录。
说明
  • CDN从源站下载的某个资源同时匹配上两条权重相同的文件后缀名缓存规则和目录缓存规则时,因为文件后缀名缓存规则的优先级更高,所以只有文件后缀名缓存规则会生效。
  • 两条相同类型(文件后缀名类型或目录类型)和权重的缓存规则,生效优先级随机。
遵循阿里云CDN默认的缓存规则。默认缓存时间最短为10秒,最长为3600秒。默认缓存规则如下:
  • 源站返回的数据中如果包含了响应头last_modified(服务器上资源的最后修改时间),则默认缓存时间=(当前时间-last_modified)×0.1。
  • 源站返回的数据中没有last-modified响应头,有ETag,则默认缓存时间为10秒。
  • 源站返回的数据中没有last-modified响应头,也没有ETag,则不缓存。

适用场景

阿里云CDN缓存资源为触发式,当用户发起对某资源的访问请求时,如果响应请求的CDN节点未缓存该资源,则回用户源站获取资源,成功获取到资源(2XX状态码)后会将资源缓存到CDN节点并返回给用户。

配置缓存过期时间的适用场景如下:

  • 源站资源发生变化,CDN节点上缓存的资源未同步更新,缓存的仍是旧资源。
  • 缓存资源频繁过期,需频繁回源站获取最新资源,导致缓存命中率低。
  • 资源加载慢。

注意事项

  • 为了能准确找到更新前和更新后的源站内容,配置静态资源的缓存过期时间之前,建议您源站的内容不使用同名更新,而是以版本号的方式同步,即更新源站内容时采用不同的名称。例如,采用img-v1.0.jpgimg-v2.1.jpg的方式命名。
  • 设置的缓存时间长短会导致回源流量不一样,CDN节点回源获取资源而产生的源站流量费用也有所不同,建议根据不同的业务需求设置缓存时长。设置的缓存时间过短,会导致CDN频繁回源,从而增加源站的流量消耗。
  • 缓存在CDN节点上的资源,由于热度低可能被提前从节点上删除。

操作步骤

  1. 登录CDN控制台
  2. 在左侧导航栏,单击域名管理
  3. 域名管理页面,单击目标域名对应的管理
  4. 在指定域名的左侧导航栏,单击缓存配置
  5. 缓存过期时间页签下,单击添加
  6. 添加缓存过期时间对话框,配置缓存规则。
    缓存过期时间
    参数 说明
    类型 支持目录文件后缀名这两种类型,可根据您的实际需求选择。
    • 目录:指定路径下的缓存资源。
    • 文件后缀名:指定文件类型的缓存资源。
    地址
    • 当类型选择目录时,填写说明如下:
      • 每次只能添加单条目录,可以用正斜线(/)匹配所有目录。
      • 支持输入目录的完整路径,须以正斜线(/)开头,例如/directory/aaa
    • 当类型选择文件后缀名时,填写说明如下:
      • 支持输入一个或多个文件后缀名,多个文件后缀名用英文逗号(,)分隔,例如jpg,txt,大小写敏感,注意区分大小写。
      • 不支持用星号(*)匹配所有的文件类型。
    过期时间 资源对应的缓存过期时间,最长可以设置3年。设置规则如下:
    • 不常更新的静态文件:例如,图片类型、应用下载类型等,建议设置1个月以上。
    • 频繁更新的静态文件:例如,JS、CSS等,根据实际业务情况设置。
    • 动态文件:例如,PHP、JSP、ASP等,建议设置为0s,即不缓存。
    权重 权重即缓存规则的优先级。取值为1~99,数值越大优先级越高。
    说明
    • 建议每条缓存策略都设置不同的权重。类型不同,权重相同的两条缓存策略,文件后缀名优先级高于目录。相同类型和权重的两条缓存策略,生效优先级随机。
    • 如果配置了多条缓存策略,其中一条缓存策略生效后将不再继续匹配其他的缓存策略。
  7. 单击确定,完成配置。

    成功配置缓存过期时间后,您可以在缓存过期时间列表中,根据所需修改删除配置。

配置示例

为加速域名 example.aliyun.com配置三条缓存策略,缓存策略1优先生效,缓存策略1生效后将不再继续匹配其他的缓存策略。
  • 缓存策略1:文件后缀名为jpg和png的所有资源过期时间设置为1个月,权重设置为90。
  • 缓存策略2:目录为/www/dir/aaa的过期时间设置为1个小时,权重设置为70。
  • 缓存策略3:完整路径为/www/dir/aaa/example.php的过期时间设置为0s,权重设置为80。

相关API

BatchSetCdnDomainConfig