更新时间:2024-08-22 GMT+08:00

配置状态码缓存时间

CDN节点回源站请求资源时,源站会返回响应的状态码,您可以在CDN控制台设置状态码的缓存时间,当客户端再次请求相同资源时,不会触发回源,减小回源概率,减轻源站压力。

适用场景

状态码缓存时间功能主要适用于源站响应异常状态码的场景。当源站运行正常时,CDN回源请求资源后将按照设置的缓存规则将资源缓存到节点,再次访问相同资源时不会触发回源。当源站响应异常,且不希望所有请求都由源站响应,可以设置状态码缓存时间,减轻源站压力。

  • 典型应用:图片abc.jpg已从源站删除,CDN节点无缓存,且持续有用户在访问该资源,那么所有访问都将会回源,由源站响应4xx状态码,增加源站压力。此时如果在CDN配置4xx状态码缓存时间,用户再次请求资源将直接由CDN节点响应4xx状态码,无需回源。

注意事项

  • 如果加速域名的资源在CDN节点不缓存,即使设置了状态码缓存时间,也无法缓存客户端请求该资源时产生的状态码。
  • 后台有特殊配置的域名暂不支持配置状态码缓存时间。
  • 业务类型为全站加速的域名不支持配置状态码缓存时间。
  • CDN默认缓存404、500、502、504状态码3s,其他状态码默认不缓存。
    • 是否默认缓存404状态码依赖头域设置,如果带有X-HTTP-Method-Override、X-HTTP-Method、X-Method-Override头域,默认不缓存,反之则缓存3s。
  • 如果域名的某个资源URL参数设置为“忽略参数”,当客户端请求返回的状态码(例如400)被缓存时,在缓存时间内所有该资源的请求均返回该状态码(400),请根据业务情况合理设置状态码缓存时间。
  • 当前支持修改以下状态码的缓存时间:
    • 4XX:400、401、403、404、405、407、414、416、451。
    • 5XX:500、501、502、503、504、509、514。
    • 3XX:301、302。

操作步骤

  1. 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
  2. 在左侧菜单栏中,选择域名管理
  3. 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
  4. 选择“缓存配置”页签。
  5. 单击“状态码缓存时间”下方的“添加”按钮。
    图1 添加状态码缓存时间
    表1 参数说明

    配置项

    描述

    示例

    状态码

    需要缓存在状态码。

    404

    缓存时间

    状态码在CDN节点的缓存时间。

    • 如果时间设置为0,即为不缓存状态码。
    • 取值范围为0~365天。
      说明:

      3XX、416状态码支持缓存0~20s。

    3天

  6. 输入需要设置的配置项,单击“确定”完成配置。

配置示例

域名www.example.com的配置了如下状态码缓存规则:

配置效果:当用户访问某资源,CDN节点无缓存,回源请求资源,而此时源站已将该资源删除,返回404状态码,CDN将此状态码透传给用户,同时将该状态码缓存到节点。在缓存有效期(30天)内,当用户再次访问该资源时,CDN直接给用户返回404状态码,无需回源,减轻源站压力。