配置状态码缓存时间
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。
操作步骤
- 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
- 在左侧菜单栏中,选择 。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“缓存配置”页签。
- 单击“状态码缓存时间”下方的“添加”按钮。
图1 添加状态码缓存时间
表1 参数说明 配置项
描述
示例
状态码
需要缓存在状态码。
404
缓存时间
状态码在CDN节点的缓存时间。
- 如果时间设置为0,即为不缓存状态码。
- 取值范围为0~365天。
说明:
3XX、416状态码支持缓存0~20s。
3天
- 输入需要设置的配置项,单击“确定”完成配置。
配置示例
域名www.example.com的配置了如下状态码缓存规则:
配置效果:当用户访问某资源,CDN节点无缓存,回源请求资源,而此时源站已将该资源删除,返回404状态码,CDN将此状态码透传给用户,同时将该状态码缓存到节点。在缓存有效期(30天)内,当用户再次访问该资源时,CDN直接给用户返回404状态码,无需回源,减轻源站压力。