回源是否校验ETag
背景介绍
Etag是URL的Entity Tag,用于标示URL对象是否改变。
域名接入CDN加速后,客户端首次访问时CDN节点会回源请求数据返回给用户,同时将资源缓存到CDN节点。在设置的缓存过期时间内,当用户再次请求资源时,CDN会将节点缓存的资源返回给客户端,不需要回源。当CDN节点缓存的资源过期后:
- 开启“回源是否校验ETag”:客户端再次请求该资源时,CDN会校验ETag值。如果ETag、Last-Modified和Content-Length值都没有变化,CDN将继续返回给用户节点缓存的资源,无需回源,降低回源率,减轻源站压力;如果ETag、Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。
- 未开启“回源是否校验ETag”:客户端再次请求该资源时,CDN不会校验ETag值。如果Last-Modified和Content-Length的值都没有变化,CDN将继续返回给用户节点缓存的资源;如果Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。
注意事项
- CDN默认开启“回源是否校验ETag”。
- 如果加速域名开启了Range回源,CDN节点回源时获取到资源不同分片的Last-Modified值不一致,CDN将会判定资源发生变化 ,为避免将错误的资源返回给客户端 ,CDN会中断连接 ,客户端访问也将中断。如果遇到类似问题,请根据业务情况选择以下措施规避:
- 关闭Range回源。
- 如果资源存放在不同的源站,请将资源迁移到同一个源站。
- 回源时不校验Last-Modified的值,如需关闭校验,请提交工单申请。
- 如果您域名的业务类型是全站加速,本功能仅对静态资源生效。
操作步骤
- 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
- 在左侧菜单栏中,选择 。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“回源配置”页签。
- 在“回源是否校验ETag”模块,根据实际业务情况选择是否开启。
图1 回源是否校验ETag
配置示例
加速域名“www.example.com”开启了回源校验ETag功能:
配置结果:该域名下的资源在缓存过期后,用户再次请求该资源时,CDN节点回源都会校验ETag,如果ETag值未改变,不会触发回源,直接将节点已缓存的资源返回给用户并且重新计算缓存过期时间;如果ETag值改变了,节点回源获取最新的资源返回给用户并缓存。