功能介绍
缓存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生效后又再次变更,会导致原有的缓存失效,产生大量回源。
- 自定义缓存key需开启【静态加速】才可配置,未开启【静态加速】则全部文件不缓存,则无需配置缓存key。
- 缓存key仅针对边缘节点缓存key生效,不影响节点回源,如果设置了特定的缓存URI或缓存参数,例如保留或忽略全部或特定参数,节点回源时是否对URI进行改写,以及是否携带对应参数,取决于“回源URI改写”和“回源参数改写”功能的配置情况。
- 当前缓存URI和缓存参数可自助配置,如需设置缓存协议及缓存host,请通过提交工单给天翼云客服,由其人工操作开启。
配置说明
缓存参数
- 登录边缘安全加速平台。
- 进入【安全与加速工作台】-【CDN加速配置】,点击目标域名。
- 选择“静态配置-缓存参数”单击“编辑配置”。
- 单击添加,根据您的需求,配置需要的缓存参数。
配置参数说明:
参数名 | 配置值 | 说明 |
---|---|---|
类型 | 后缀名/目录/首页/全部文件/全路径文件 | 需要配置的文件类型。 |
内容 | 指定类型的具体内容 | 类型选择后缀名、目录、全路径文件时,需配置具体内容;例如类型为后缀名时,需在内容处指明具体的文件后缀;如类型为目录时,需在内容处指明具体的目录内容。 |
忽略参数 | 不忽略/全部忽略/保留指定参数/忽略指定参数 | 缓存参数配置类型。如选择不忽略,则为带参数缓存;如选择全部忽略,则为去参数缓存;如为保留指定参数,则仅携带指定参数缓存;如为忽略指定参数,则为去指定参数后缓存。 |
优先级 | 数字 | 缓存配置的优先级;存在多条缓存参数设置时,相同文件类型及内容,执行优先级高的缓存规则。 |
配置页面:
点击“添加规则”则弹出添加缓存参数:
缓存URI
- 登录边缘安全加速平台。
- 进入【安全与加速工作台】-【CDN加速配置】,点击目标域名。
- 选择“静态配置-缓存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。