功能介绍
缓存过期时间指源站资源在CDN节点缓存的时长,在缓存未过期前,对应资源会直接从CDN节点响应给用户;达到预设缓存过期时间后,资源将会被CDN节点标记为缓存过期。此时如果客户端向CDN节点请求该资源,CDN会携带If-Modified-Since请求头或If-None-Match请求头回源站校验内容是否有更新,如有更新则获取最新资源并缓存到CDN节点,如无更新则继续使用原有缓存文件。您可以根据业务需求,按指定路径或文件名后缀等方式配置静态资源的缓存过期时间。
注意事项
- 您可基于天翼云默认推荐的缓存设置,按需进行调整后,直接使用,当前默认推荐配置如下:
- 如您删除了上述默认推荐设置,且未添加其他任何设置情况下,全局默认优先遵循源站缓存头,包括Pragma:no-cache、Cache-Control、Expires响应头;其优先级从高到底分别如下:Pragma:no-cache、Cache-Control:no-cache/private/no-store > Cache-Control:max-age=n (n≥0)>Expires。如源站无任何上述缓存头设置,则在CDN节点上不缓存。
- 如果加速域名下的文件访问热度过低(指同个文件在一段时间内被访问的频次过低),则很可能在过期时间到来之前被其他热度更高的文件覆盖。即:即使某个文件配置的缓存时间较长,如1个月,仍有可能在1个月内重复回源。
- 天翼云CDN节点的缓存时间,最长可以设置为3年,即1095天。
配置说明
- 登录CDN控制台。
- 单击左侧导航栏【域名管理】-【域名列表】。
- 在【域名列表】页面,找到目标域名,单击【操作】列的【编辑】。
- 单击【缓存配置】。
- 单击【添加】,在弹出的对话框中,配置缓存规则,并单击【确定】。
(1)选择【类型】,如后缀名、目录、首页、全部文件、全路径文件,并配置相应的内容。
- 后缀名:指文件后缀名,可单击选择后缀名,如jpg,png。若后缀名不在选择清单内,可在【其他文件】框输入其他后缀名。
- 目录:指具体目录,例如值为:/a,表示目录前缀为/a/的文件。
- 首页:指域名首页,值固定为/。
- 全部文件:指对应域名下的所有文件,值固定为/。
- 全路径文件:指对应URI的文件,例如值为:/a/b.js,则表示请求url中位于/a/目录下的b.js文件的缓存规则(无论是否携带问号后参数)。
(2)选择【缓存规则】,默认为强制缓存。
- 如选择强制缓存,则即使源站返回Cache-Control:no-cache/no-store/private等不缓存头或类似Cache-Control:max-age=n (n>0) 的缓存头时,CDN节点仍将按照预设的规则及时间缓存文件。
注意如选择强制缓存,且过期时间设置为0,则无论源站如何响应,CDN节点均不缓存该文件。
- 如选择优先遵循源站,则源站如果返回Cache-Control:no-cache/no-store/private等不缓存头或Cache-Control:max-age=n (n>0)、Expires响应头时,优先按照源站响应头对应的缓存时间生效。
- 如选择不缓存,则无论源站返回任何缓存相关响应头,CDN节点均不缓存。
(3)选择【过期时间】单位,如秒、分钟、小时、天。再填写对应的过期时间。
(4)【去问号缓存】默认为开启,如需要带问号后参数缓存,请选择关闭该功能。
注意对于可缓存的文件,CDN节点通常会将用户请求的原始URL作为缓存key(缓存key为文件在CDN节点上缓存的唯一ID)。如果原始URL中携带问号后参数,且不同参数实际指向同一份文件时,可以配置开启去问号缓存,此时CDN节点会将问号后参数去掉的内容作为缓存key,以提升缓存命中率,降低回源量。如果原始URL中携带问号后参数,且参数不同时源站指向不同文件,则需要关闭去问号缓存功能,避免缓存错误。
(5)填写【权重】。权重即优先级,支持自定义,数字越大则越优先生效。如果同个URL满足不同的缓存规则设置,例如该URL既属于某个文件后缀,又属于某个目录下,此时具体遵循哪条缓存规则,取决于二者的权重设置,最终按权重数字大的生效。
- 单击【提交保存】,完成配置。
配置示例
需要对“txt”格式的文件缓存7天,且需要忽略源站响应头Cache-Control,即开启强制缓存,在CDN控制台增加一条文件名后缀为“txt”的缓存规则,缓存过期时间设置为“7天”,缓存规则选择强制缓存: