DCDN节点从源站获取请求资源时,源站会返回响应状态码,您可以在阿里云DCDN上配置状态码缓存时间,当客户端再次请求相同资源时,实现由DCDN节点直接响应状态码,不会触发回源,减轻源站压力。当状态码超过设置的缓存时间,会重新触发回源。本文为您介绍如何配置状态码过期时间。

您可以通过以下内容,了解和配置状态码过期时间:

适用场景

正常情况下DCDN节点成功从源站获取到所请求的资源,即源站响应了2xx状态码时,会按照DCDN节点配置的缓存过期规则进行处理。

如果源站无法迅速响应所有状态码(例如非2xx状态码),且不希望所有请求全部由源站响应,可以配置状态码过期时间,由DCDN节点直接响应状态码,减轻源站压力。

典型场景:文件A在源站已被删除,但客户端仍持续访问,DCDN节点没有缓存文件A,所有请求转发回源,由源站响应4xx状态码,加剧源站压力。如果配置了缓存4xx状态码,DCDN节点首次回源后,会缓存4xx状态码,预设缓存时间内,当客户端再次请求文件A时,由DCDN直接响应4xx状态码,无需回源。

说明
  • 对于303、304、401、407、600和601状态码,全站加速不进行缓存。
  • 对于204、305、400、403、404、405、414、500、501、502、503和504状态码,如果源站响应了Pragma、Cache-Control或者Expires的HTTP缓存规则,则遵循源站响应的HTTP缓存规则;如果源站没有相应HTTP缓存规则,全站加速也未设置状态码过期时间,则缓存时间默认为1秒。

多条规则生效说明

支持设置多条状态码缓存规则,当某个请求同时匹配了多条规则时,只会有一条规则生效,生效规则如下:
  • 判断顺序:

    先判断规则类型(文件后缀名>目录),再判断规则创建时间(先创建的>后创建的)。

  • 不同类型规则的生效优先级:文件后缀名>目录。

    例如,如果用户的请求同时匹配了2条规则(均配置了404状态码),规则类型分别为文件后缀名目录类型,404状态码的过期时间以类型为文件后缀名的规则为准。具体示例,请参见配置示例

  • 相同类型规则的生效优先级:先创建的>后创建的(规则列表由上而下)。

    例如,如果用户的请求同时匹配2条规则(均配置了404状态码),规则类型相同(均为文件后缀名或均为目录类型),404状态码的过期时间以“最早创建”的规则为准。具体示例,请参见配置示例

操作步骤

  1. 登录全站加速控制台
  2. 在左侧导航栏,单击域名管理
  3. 域名管理页面,单击目标域名对应的配置
  4. 在指定域名的左侧导航栏,单击缓存配置
  5. 单击状态码过期时间页签。
  6. 单击添加,配置状态码过期时间。
    配置文件和目录状态码过期时间
    类型 注意事项
    类型 支持目录文件后缀名这两种类型,请根据您的实际需求选择。
    说明 不同类型规则的生效优先级:文件后缀名>目录,具体请参见多条规则生效说明
    地址
    • 类型选择为目录,填写说明如下:
      • 每次只能添加一条目录。
      • 支持输入目录的完整路径,须以正斜线(/)开头,例如/directory/aaa
    • 类型选择为文件后缀名,填写说明如下:
      • 支持输入一个或多个文件后缀名,多个文件后缀名用半角逗号(,)分隔,例如JPG,TXT
        说明 不同记录中配置的文件后缀名类型完全相同,仅有大小写区分时,后面创建的会覆盖掉前面创建的,例如创建JPG,TXT规则后,再创建jpg,txt规则时,会覆盖掉之前创建的JPG,TXT记录。此时,如果需要配置小写规则,可以单独创建txt和jpg的规则。配置规则实际生效的时候是严格区分大小写。
      • 不支持用星号(*)匹配所有的文件类型。
    状态码过期时间设置 需要缓存的状态码及其缓存时间,最长可设置3年,单位:秒,配置规则如下:
    • 多个状态码用半角逗号(,)分隔。
    • 对于2xx、3xx状态码,仅支持单个精准配置,不支持模糊批量配置。例如,201=10(支持),2xx=12(不支持)。
    • 对于4xx、5xx状态码,既支持单个精准配置,也支持模糊批量配置。例如,401=10(支持),4xx=12(也支持)。
  7. 单击确定,完成配置。

    成功配置状态码过期时间后,您可以在状态码过期时间列表中,对当前的配置进行修改删除操作。

配置示例

  • 示例一:目录类型规则

    创建目录类型规则如下图所示:示例一

    在/directory/aaa目录下,所有4xx状态码缓存时间为10秒,201状态码缓存时间为15秒,在该时间区间内,由DCDN节点直接响应对应的访问请求;超过该时间后,会触发回源。

  • 示例二:文件后缀名类型规则

    创建文件后缀名类型规则如下图所示:示例二

    文件后缀为.jpg或.txt类型,403状态码缓存时间为10秒,404状态码缓存时间为15秒,在该时间区间内,由DCDN节点直接响应对应的访问请求;超过该时间后,会触发回源。

  • 示例三:不同类型规则的生效优先级

    分别创建了一条“目录类型规则”和一条“文件后缀名类型规则”,设置了不同的状态码过期时间,如下图所示:示例三

    用户请求 http://example.com/directory/aaa/test.jpg,DCDN节点上没有缓存资源,DCDN节点向源站请求资源,源站响应了404状态码,这里同时匹配上了“目录类型规则”和“文件后缀名类型规则”,因为在规则类型不同的情况下,规则生效优先级是文件后缀名>目录,所以“文件后缀名类型规则”生效,404状态码的实际缓存时间是20秒。

  • 示例四:相同类型多条规则的生效优先级

    先创建了一条“目录类型规则一”,匹配的地址是“/directory”,然后再创建另一条“目录类型规则二”,匹配的地址是“/directory/aaa”,设置了不同的状态码过期时间,如下图所示:示例四

    用户请求http://example.com/directory/aaa/test.jpg,DCDN节点上没有缓存资源,DCDN节点向源站请求资源,源站响应了404状态码,这里同时匹配上了两条“目录类型规则”,因为在规则类型相同的情况下,规则生效优先级是早创建的>晚创建的,所以最早创建的“目录类型规则一”生效,404状态码的实际缓存时间是15秒。

相关API

BatchAddDcdnDomain