功能介绍
- 缓存key是一个文件缓存在全站加速节点上时的唯一标识,缓存文件和缓存key是一对一的关系。通常默认情况下,缓存key为客户端请求的原始URL(带参数)。
- 通过缓存key,可以将原始URL形式不同但实际指向同一个文件的请求,缓存为同一份,从而提升缓存命中率,降低回源量。
适用场景
- 如果客户端请求不同URL时,实际指向同一份缓存文件,则可以通过缓存key功能来实现将其在全站加速节点上映射为同一份文件,避免出现被缓存成不同文件而导致回源率高的问题。
- 例如:部分客户会在请求URL中设置防盗链串,可能在请求参数中,也可能在URL某一级目录中,假设请求1为:http://www.ctyun.cn/xxxxx/test/a.mp4;请求2为:http://www.ctyun.cn/yyyyy/test/a.mp4;由于请求URL不同,全站加速节点默认会视为请求不同文件而缓存成多个不同mp4文件,但实际其一级目录均为防盗链串,二者为同一文件内容。此时可设置缓存key为:http://www.ctyun.cn/test/a.mp4,即对缓存uri部分做自定义设置,从而达到共用同一份缓存的目的。
注意事项
- 客户控制台上【域名管理】-【缓存配置】中默认开启去问号缓存,开启后,如果客户的请求URL中含有多个参数值,例如请求1为:http://www.ctyun.cn/a.mp4?a=1,请求2为:http://www.ctyun.cn/a.mp4?a=2;则将这两个请求的缓存key统一为:http://www.ctyun.cn/a.mp4,以达到共用同一份缓存文件,降低回源率的效果。
- 缓存key设置与客户控制台上【域名管理】-【缓存配置】中去问号缓存同时开启情况下,缓存key优先级更高。
- 缓存key一旦设置后,一般不建议轻易变动;如果您配置缓存key生效后又再次变更,会导致原有的缓存失效,产生大量回源。
配置说明
缓存参数
- 登录客户控制台。
- 在【域名管理】-【域名列表】页面,单击【编辑】目标域名。
- 单击【缓存配置】。
- 单击【缓存key】页签。
- 单击【缓存参数】下【添加】。
- 根据您的需求设置缓存参数,单击【确定】。
配置参数说明:
参数名 | 配置值 | 说明 |
---|---|---|
类型 | 后缀名/目录/首页/全部文件/全路径文件 | 需要配置的文件类型。 |
内容 | 指定类型的具体内容 | 类型选择后缀名、目录、全路径文件时,需配置具体内容;例如类型为后缀名时,需在内容处指明具体的文件后缀;如类型为目录时,需在内容处指明具体的目录内容。 |
忽略参数 | 不忽略/全部忽略/保留指定参数/忽略指定参数 | 缓存参数配置类型。如选择不忽略,则为带参数缓存;如选择全部忽略,则为去参数缓存;如为保留指定参数,则仅携带指定参数缓存;如为忽略指定参数,则为去指定参数后缓存。 保留指定参数不支持参数名带中划线,如参数名:a-b,请通过提交工单给天翼云客服,由其人工操作开启。 |
优先级 | 数字 | 缓存配置的优先级;存在多条缓存参数设置时,相同文件类型及内容,执行优先级高的缓存规则。 |
缓存URI
- 登录客户控制台。
- 在【域名列表】页面,单击【编辑】目标域名。
- 单击【缓存配置】。
- 单击【缓存key】页签。
- 单击缓存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时,源站返回为不同文件。
此时可在全站上配置忽略参数d缓存。配置生效后,全站节点将会把访问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。