开启忽略参数后,CDN节点会去除请求URL中?之后的参数,使不同参数的请求命中同一缓存,从而提高缓存命中率。本文介绍忽略参数的配置方法。
功能对比与选择
自定义Cache Key与忽略参数存在冲突:开启忽略参数后,节点会去除URL中
?之后的参数,导致自定义Cache Key中的请求参数配置失效。使用自定义Cache Key前,请关闭忽略参数。自定义Cache Key功能更全面,可替代忽略参数的缓存键配置,推荐优先使用。配置对比:
场景
忽略参数
自定义Cache Key
在缓存键中忽略所有请求参数
忽略参数设置为是,保留指定参数留空
添加一条请求参数处理策略:
操作方式:保留
参数名:设为任意不存在的参数名,例如 example-argument
在缓存键中仅保留请求参数key1
忽略参数设置为是,保留指定参数设置为
key1添加一条请求参数处理策略:
操作方式:保留
参数名:key1
在缓存键中仅删除请求参数key1
删除指定参数设置为
key1添加一条请求参数处理策略:
操作方式:删除
参数名:key1
重写回源参数功能更全面,可替代忽略参数的回源参数重写,推荐优先使用。
功能介绍
URL鉴权的优先级高于忽略参数。鉴权方式A的鉴权信息包含URL参数部分,CDN会先完成鉴权判断,通过后再缓存副本。配置URL鉴权的方法,请参见配置URL鉴权。
忽略参数
作用
适用场景
去除请求URL中
?之后的参数,使携带不同参数的请求命中同一缓存文件,提高缓存命中率、减少回源次数。当URL中
?后的参数与资源内容无关(如用户UID、渠道来源、推荐码等),建议开启忽略参数。例如,以下两个请求访问同一资源但携带不同UID:
A用户:
http://example.com/1.jpg?uid=123***B用户:
http://example.com/1.jpg?uid=654***
未开启忽略参数时,CDN节点会将A、B用户的URL视为不同资源,无法命中同一缓存,每次都需回源。
开启忽略参数后,CDN节点会去除URL中
?后的参数,统一使用http://example.com/1.jpg匹配缓存。保留回源参数
作用
适用场景
回源时保留原始URL中的所有参数,确保源站能接收到用户的关键信息。
开启忽略参数后,CDN节点默认使用去除参数后的URL回源。以上述示例为例,A、B用户的回源请求都使用
http://example.com/1.jpg,UID等关键信息会丢失。开启保留回源参数后,CDN节点将使用原始URL回源,确保UID等参数传递给源站。
忽略参数支持两种模式(保留指定参数、删除指定参数),处理流程如下:
操作步骤
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击性能优化。
单击忽略参数区域的修改配置,根据实际需求选择模式并完成配置。
重要切换模式后,原有配置将被清除。
模式:保留指定参数
参数
说明
示例
忽略参数
是:开启忽略参数,去除URL中
?之后的参数。说明仅开启忽略参数而未设置保留指定参数时,将去除
?之后的所有参数。否:关闭忽略参数,保留所有URL参数。
假设原始URL为
http://example.com/1.jpg?key1=1&key2=2&key3=3,各配置的处理结果如下:示例一,忽略所有参数,不保留回源参数:
配置:忽略参数=是,保留指定参数留空,保留回源参数=否。
缓存key:
http://example.com/1.jpg回源URL:
http://example.com/1.jpg
示例二,保留指定参数,不保留回源参数:
配置:忽略参数=是,保留指定参数=
key1,保留回源参数=否。缓存key:
http://example.com/1.jpg?key1=1回源URL:
http://example.com/1.jpg?key1=1
示例三,忽略所有参数,保留回源参数:
配置:忽略参数=是,保留指定参数留空,保留回源参数=是。
缓存key:
http://example.com/1.jpg回源URL:
http://example.com/1.jpg?key1=1&key2=2&key3=3
示例四,保留指定参数,保留回源参数:
配置:忽略参数=是,保留指定参数=
key1,保留回源参数=是。缓存key:
http://example.com/1.jpg?key1=1回源URL:
http://example.com/1.jpg?key1=1&key2=2&key3=3
保留指定参数
配置需要保留的参数名,最多10个,多个参数用英文逗号(,)分隔。
保留回源参数
是:回源时保留原始URL中的所有参数。
否:回源时仅携带与缓存hashkey一致的参数(即保留指定的参数)。
规则条件
规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。
重要引用规则条件时,按所关联规则条件的优先级匹配,而非按功能自身的配置顺序匹配。
不使用:不使用规则条件。
若需新增或编辑规则条件,请在规则引擎中进行管理。
模式:删除指定参数
参数
说明
示例
删除指定参数
配置需要删除的参数名,最多10个,多个参数用空格分隔。
假设原始URL为
http://example.com/1.jpg?key1=1&key2=2&key3=3,各配置的处理结果如下:示例一,删除指定参数,不保留回源参数:
配置:删除指定参数=
key1,保留回源参数=否。缓存key:
http://example.com/1.jpg?key2=2&key3=3回源URL:
http://example.com/1.jpg?key2=2&key3=3
示例二,删除指定参数,保留回源参数:
配置:删除指定参数=
key1,保留回源参数=是。缓存key:
http://example.com/1.jpg?key2=2&key3=3回源URL:
http://example.com/1.jpg?key1=1&key2=2&key3=3
保留回源参数
是:回源时保留原始URL中的所有参数。
否:回源时仅携带与缓存hashkey一致的参数(即删除指定参数后的结果)。
规则条件
规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。
重要引用规则条件时,按所关联规则条件的优先级匹配,而非按功能自身的配置顺序匹配。
不使用:不使用规则条件。
若需新增或编辑规则条件,请在规则引擎中进行管理。
单击确定,完成配置。