功能介绍
缓存key是一个文件在CDN节点上缓存时唯一的身份ID,每个在CDN节点上缓存的文件都会对应一个缓存key。通常默认情况下,文件的缓存key为客户端请求的原始URL(带参数)。
通过自定义缓存key,可以将原始URL形式不同但实际指向同一个文件的请求,缓存为同一份,从而提升缓存命中率,降低回源量。
适用场景
如果客户端请求不同URL时,实际指向同一份缓存文件,则可以通过自定义缓存key功能来实现将其在CDN节点上映射为同一份文件,避免出现被缓存成不同文件而导致回源率高的问题。
配置说明
缓存参数
- 登录CDN控制台。
- 单击左侧导航栏【域名管理】-【域名列表】。
- 在【域名列表】页面,找到目标域名,单击【操作】列的【编辑】。
- 单击右侧【缓存配置】。
- 在【缓存参数】模块,单击【增加规则】,弹出的对话框中,根据需求填写缓存参数。
- 单击【保存】,完成配置。
参数名 | 配置值 | 说明 |
---|---|---|
类型 | 后缀名/目录/首页/全部文件/全路径文件 | 需要配置的文件类型。 |
内容 | 指定类型的具体内容 | 类型选择后缀名、目录、全路径文件时,需配置具体内容;例如类型为后缀名时,需在内容处指明具体的文件后缀;如类型为目录时,需在内容处指明具体的目录内容。 |
忽略参数 | 不忽略/全部忽略/保留指定参数/忽略指定参数 | 缓存参数配置类型。 1.如选择不忽略,则为带参数缓存。 2.如选择全部忽略,则为去参数缓存。 3.如为保留指定参数,则仅携带指定参数缓存。 4.如为忽略指定参数,则为去指定参数后缓存。 保留指定参数不支持参数名带中划线,如参数名:a-b,请通过提交工单给天翼云客服,由其人工操作开启。 |
优先级 | 数字 | 缓存配置的优先级;存在多条缓存参数设置时,相同文件类型及内容,执行优先级高的缓存规则。 |
缓存URI改写
- 登录CDN控制台。
- 单击左侧导航栏【域名管理】-【域名列表】。
- 在【域名列表】页面,找到目标域名,单击【操作】列的【编辑】。
- 单击右侧【缓存配置】。
- 在【缓存URI改写】模块,单击【增加规则】,根据需求填写缓存URI改写前后的值。
- 单击【保存】,完成配置。
参数名 | 配置值 | 说明 |
---|---|---|
待改写PATH | 需改写的URI | 以/开头的URI,不含http://头及域名、?及参数。支持正则表达式,如^/test$。 |
目标PATH | 改写后URI | 以/开头的URI,不含http://头及域名、?及参数。支持正则表达式,常用$1、$2来捕获待改写path中圆括号内的字符串。 |
配置示例
- 保留指定参数缓存
参数名 参数值 类型 后缀名 内容 html 忽略参数 保留指定参数 指定参数 a=$arg_a
结果说明 :保留a参数进行缓存。
适用场景:
用户访问URL形式为:http://www.ctyun.cn/a/a.html?a=1&c=2&d=3。
如果访问http://www.ctyun.cn/a/a.html?a=1&c=2&d=3和http://www.ctyun.cn/a/a.html?a=1&c=4&d=5时,源站将返回同一文件内容;
且访问http://www.ctyun.cn/a/a.html?a=1&c=2&d=3和http://www.ctyun.cn/a/a.html?a=2&c=4&d=5时,源站将返回不同文件内容。
此时可配置保留指定参数a进行缓存。配置生效后,http://www.ctyun.cn/a/a.html?a=1&c=2&d=3和http://www.ctyun.cn/a/a.html?a=1&c=4&d=5请求内容,都将缓存为http://www.ctyun.cn/a/a.html?a=1。
注意该场景适用于源站仅针对特定参数a返回不同文件内容。如源站除针对参数a返回不同内容外,针对其他参数(例如参数b)也返回不同内容,则此时需要同时保留参数a和参数b,否则会造成缓存错乱,响应非预期文件内容。
- 忽略指定参数缓存
参数名 参数值 类型 后缀名 内容 html 忽略参数 忽略指定参数 指定参数 d
结果说明 :忽略特定参数d缓存。
适用场景:
用户访问URL形式为:http://www.ctyun.cn/a/a.html?b=1&c=2&d=3;且有可能后期随时增加新的参数,后期新增加的参数均需要保留对应参数缓存,且存在如下情况:
访问http://www.ctyun.cn/a/a.html?b=1&c=2&d=3和http://www.ctyun.cn/a/a.html?b=1&c=2&d=5时,源站返回为同一文件。
访问http://www.ctyun.cn/a/a.html?b=1&c=2&d=3和http://www.ctyun.cn/a/a.html?b=2&c=2&d=5时,源站返回为不同文件。
访问http://www.ctyun.cn/a/a.html?b=1&c=2&d=3和http://www.ctyun.cn/a/a.html?b=3&c=2&d=3时,源站返回为不同文件。
此时可在CDN上配置忽略参数d缓存。配置生效后,CDN节点将会把访问http://www.ctyun.cn/a/a.html?b=1&c=2&d=3和http://www.ctyun.cn/a/a.html?b=1&c=2&d=5请求内容,均缓存为http://www.ctyun.cn/a/a.html?b=1&c=2。
- 缓存URI改写
参数名 参数值 待改写path ^/[^/]+(.+) 目标path $1
结果说明 :去掉第一级目录缓存。
原始请求:/a/b/c.mp4。改写后的缓存URI:/b/c.mp4。
注意事项
- CDN控制台上“域名管理”-“缓存配置”中默认开启去问号缓存,开启后,如果客户的请求URL中含有多个参数值,例如请求1为:
- http://www.ctyun.cn/a/a.html?a=1和http://www.ctyun.cn/a/a.html?a=2;则将这两个请求的缓存key统一为:http://www.ctyun.cn/a/a.html,以达到共用同一份缓存,降低回源率的效果。
- 缓存key设置与缓存过期时间中去问号缓存同时开启的情况下,缓存key设置优先级更高。
- 缓存key一旦设置后,一般不建议轻易变动;如果您配置缓存key生效后又再次变更,会导致原有的缓存失效,产生大量回源。
- 缓存key仅针对CDN节点缓存key生效,不影响CDN节点回源,如果设置特定的缓存URI或缓存参数,例如保留或忽略全部或特定参数,CDN节点回源时是否对URI进行改写,以及是否携带对应参数,取决于“回源URI改写”和“回源参数改写”功能的配置情况,详情请见:回源URI改写、回源参数改写。
- 当前缓存URI和缓存参数可自助配置,如需设置缓存协议及缓存host,请通过提交工单给天翼云客服,由其人工操作开启。