功能介绍
缓存过期时间指源站资源在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节点通常会设置缓存key(缓存key为文件在CDN节点上缓存的唯一ID)。默认情况下,CDN节点会将问号后参数去掉的内容作为缓存key,以提升缓存命中率,降低回源量。如果原始URL中携带问号后参数,且参数不同时源站指向不同文件,则选择不忽略参数,避免缓存错误。
(5)填写【权重】。权重即优先级,支持自定义,数字越大则越优先生效。如果同个URL满足不同的缓存规则设置,例如该URL既属于某个文件后缀,又属于某个目录下,此时具体遵循哪条缓存规则,取决于二者的权重设置,最终按权重数字大的生效。
单击【确定】,完成配置。
配置示例
需要对“txt”格式的文件缓存7天,且需要忽略源站响应头Cache-Control,即开启强制缓存,在CDN控制台增加一条文件名后缀为“txt”的缓存规则,缓存过期时间设置为“7天”,缓存规则选择强制缓存: