节点缓存配置

最近更新时间:2020-07-23 15:34:37

配置场景

腾讯云 CDN 缓存资源为触发式,当用户发起针对某资源的访问,若请求触达的 CDN 节点未缓存该资源,则回用户源站拉取资源,成功拉取到资源(2XX状态码)后,在节点进行缓存并返回给用户。

您无法直接对 CDN 节点上缓存的资源进行管理,若担心源站资源可能发生变化而 CDN 节点仍缓存旧资源返回给用户,可通过配置节点缓存规则来进行一定程度的控制。

每一个 CDN 节点上的缓存资源都有“过期时间”的概念,若请求到的缓存资源已到期,即便节点仍有缓存,也会判定为无效,进行再次回源拉取。节点缓存规则配置支持指定某类型、某目录、路径的资源在节点的缓存过期时间,可根据实际业务场景进行配置。

配置指南

查看配置

登录 CDN 控制台,在菜单栏里选择【域名管理】,单击域名右侧【管理】,即可进入域名配置页面,第三栏【缓存配置】中可看到缓存过期配置。
接入加速域名时:

  • 若选择静态加速类型,常规动态文件(如 php、jsp、asp、aspx)默认缓存过期时间为0(不缓存直接回源),其他所有文件类型默认过期时间为30天。
  • 若选择下载加速、流媒体点播加速类型,默认所有文件缓存过期时间为30天。

修改配置

1. 修改配置

CDN 目前支持以下四种类型的缓存过期规则配置:

  • 文件类型:根据填入的文件后缀进行缓存过期时间设置,格式为文件类型形式,如jpg;css,不同后缀之间用;间隔。
  • 文件夹:根据填入的目录路径进行缓存过期时间设置,格式为/test形式,无需以/结尾,不同目录之间用;间隔。
  • 全路径文件:指定完整的文件路径进行缓存过期时间设置,格式为/index.html,支持完整路径加文件类型匹配模式,如/test/*.jpg
  • 首页:针对根目录设置缓存过期时间。


配置规则:

  • 缓存过期规则最多可配置10条。
  • 多条缓存过期规则之间的优先级为底部优先。
  • 缓存过期时间最多可设置365天。
注意:

若您的加速域名服务区域为全球加速,设置的缓存过期时间会全球生效,不支持境内、境外差异化配置

2. 平台策略

当用户请求您某一业务资源时,源站对应的 HTTP Response Header 中存在 Cache-Control 字段,此时默认平台策略如下:

  • Cache-Control 字段为 Max-Age,对该资源的缓存时间以配置的节点缓存过期时间为主,不继承 Max-Age 指定时间。
  • Cache-Control 字段为 no-cache 、 no-store 或 private,此时 CDN 节点对此资源不做缓存。
  • 无 Cache-Control 字段,当请求命中 CDN 缓存时,CDN 会默认添加:Cache-Control:max-age = 600头部。

3. 高级缓存配置

开启高级缓存配置,用户可通过调整源站 HTTP Response Header Cache-Control 中 Max-Age 值进行节点缓存时间的动态调整。

开启后 CDN 会对比已经配置好的节点缓存时间与 Max-Age 值,取较小的作为实际生效的节点缓存时间:

  • 用户源站配置/index.html的 Max-Age 为200秒,CDN 对应配置的缓存时间为600秒,则文件在节点的实际过期时间为200秒。
  • 用户源站配置 /index.html 的 Max-Age 为800秒,CDN 对应的缓存时间为600秒,则文件在节点的实际过期时间为600秒。
注意:

开启高级缓存配置,若源站没有返回 Last-Modified 字段,CDN 会默认添加 Last-Modified 字段,每10分钟变一次

配置示例

若加速域名cloud.tencent.com的缓存过期规则配置如下:

则实际缓存时间如下:

  1. /test/abc.jpg 文件节点缓存过期时间为200秒。
  2. /test/def.jpg 文件节点缓存过期时间为400秒。
  3. /test/1.png 文件节点缓存过期时间为300秒。
目录