本文档介绍如何在火山引擎内容分发网络(CDN)中对加速域名配置回源请求中包含的查询参数。
默认情况下,CDN 在回源请求中包含的查询参数和用户请求的 URL 中包含的查询参数是相同的。比如用户请求 URL 是 http://www.example.com/image.png?version=1
。该 URL 包含查询参数 version
,参数值是 1
。在回源请求的 URL 中,CDN 也会包含 version=1
。
如果您需要修改回源请求中包含的查询参数或参数值,您可以配置回源参数。在配置中,您需要创建规则,在规则中定义请求的匹配条件以及回源参数的设置方式。
预设规则
回源参数配置中有一条预设规则。这条规则对所有文件生效,并且优先级始终最低。如果一个用户请求未匹配您创建的所有规则,这个用户请求就会匹配该预设规则。您无法删除这条预设规则,无法调整其优先级,也无法修改这条规则中的规则类型和规则内容。规则中 参数设置 配置默认是 保留全部参数。您可以修改该配置。
前提条件
要使用本文档中介绍的全部配置项,您加速域名的源站配置模块必须已升级到新版本。参见 新版源站配置模块介绍。
如果您加速域名的源站配置模块尚未升级到新版本,回源参数的配置会有以下限制:
- 您无法添加规则。
- 控制台只有上方描述的预设规则。
- 在这条预设规则中,您仅能设置 参数设置。
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。
- 在页面右上方,点击 回源配置 页签。
- 点击 编辑配置。
- 在 回源参数设置 下方,点击 添加规则。您最多可以添加 50 条规则。
- 参照 配置说明 进行设置。
- 设置完成后,在页面右上方点击 提交编辑。
配置说明
配置 | 说明 |
---|
优先级 | 表示规则的优先级。在规则列表中,每条规则都有优先级。优先级为 1 的规则具有最高优先级。当收到一个用户请求时,CDN 按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了一条规则,匹配过程就停止了。您可以拖动规则来调整优先级。需要留意的是,您无法调整那条预设规则的优先级。
规则中的过滤条件定义了规则的作用范围。如果您创建了多条规则,请留意这些规则的作用范围是否存在交集,并按您的预期设置规则的优先级。例如,您创建了两条规则。规则A 的作用范围是 /dir/ ,规则B 的作用范围是 png;jpg 。如果 /dir/ 目录下存在 .png 文件,并且您希望规则B 对 .png 文件的请求生效,那么您需要设置规则B 的优先级高于规则A。 |
规则类型 | 表示规则中的过滤类型。该配置有以下选项: 文件后缀:表示请求 URL 中的扩展名。 文件目录:表示请求路径中的某个目录。 文件全路径:表示请求 URL。 全路径正则:表示通过正则表达式匹配请求 URL。
|
规则 | 表示规则的内容。内容长度不能超过 1,024 个字符,不能包含以下字符: - 连续斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
在匹配用户请求时,规则内容不区分大小写。
该配置的额外说明如下: 如果 规则类型 是 文件后缀,规则内容必须是一个或者多个以分号(;)分隔的文件后缀。文件后缀无需以句点(.)开头。例如:png;txt 。 如果 规则类型 是 文件目录,规则内容必须是一个或者多个以分号(;)分隔的目录路径。目录路径必须以斜杠(/)开头和结尾。例如:/chs/foods/;/us/birds/ 。 如果 规则类型 是 文件全路径,规则内容必须是一个或者多个以分号(;)分隔的文件路径。文件路径必须以斜杠(/)开头,可以包含星号(*)用来表示一个或者多个字符。例如:/chs/foods/local*sets;/us/birds/chickadee 。 如果 规则类型 是 全路径正则,规则内容是一个或者多个正则表达式,用于匹配用户请求 URL 中的路径。对于一个用户请求,如果该正则表达式匹配了路径中的任何部分,这条规则就匹配了该用户请求。参见 配置示例。要指定 全路径正则,请 提交工单。
|
参数设置 | 表示回源请求 URL 中查询参数的设置方式。该配置有以下选项: 保留全部参数:表示回源请求 URL 中包含用户请求 URL 中的全部查询参数。 删除全部参数:表示回源请求 URL 中不包含用户请求 URL 中的任何查询参数。 添加指定参数:表示回源请求 URL 中包含用户请求 URL 中的全部查询参数,并额外包含 参数内容 中指定的那些查询参数。 保留指定参数:表示如果用户请求 URL 中存在 参数名称 中指定的查询参数,那么回源请求 URL 中包含这些指定的查询参数。 删除指定参数:表示回源请求 URL 中包含用户请求 URL 中的全部查询参数,除了 参数名称 中指定的那些查询参数。 重置指定参数:表示回源请求 URL 中包含用户请求 URL 中的全部查询参数。同时,对于您在 参数内容 中指定的查询参数和参数值,CDN 会执行以下操作: - 如果这些查询参数在用户请求 URL 中,CDN 会在回源请求 URL 中将这些查询数的值设置为您指定的值。
- 如果用户请求 URL 中不包含这些查询参数,CDN 会在回源请求 URL 中添加这些查询参数。
|
参数名称 | 表示一个或者多个查询参数,多个查询参数之间使用分号(;)分隔,总长度不能超过 1,024 个字符。查询参数只能包含字母、数字、下划线(_)、逗号(,)、短横线(-)、句点(.)和感叹号(!)。
在匹配请求 URL 中的查询参数时,该配置中的参数是大小写敏感的。
仅当 参数设置 是 删除指定参数 或 保留指定参数 时,该配置会出现。 |
参数内容 | 表示一个或者多个键值对,代表查询参数和参数值。
键值对的格式是 key=value ,多个键值对之间使用分号(;)分隔,总长度不能超过 1,024 个字符。键值对只能包含除了空格以外的可打印 ASCII 字符。例如:size=12-inch;food=pizza;type=pepperoni 。
在匹配请求 URL 中的查询参数时,该配置中的参数是大小写敏感的。
仅当 参数设置 是 添加指定参数 或 重置指定参数 时,该配置会出现。 |
全路径正则配置示例
用户请求 | 指定的全路径正则 | 说明 |
---|
/a/bbb/image.png | ^/a{1,2}.*g$ 用于匹配以 / 开头和以 g 结尾的路径。 | 正则表达式匹配了请求 URL 中的路径。 |
/aaa/bbb/image.png | /a{1,2}.*g 用于匹配请求路径中的特定字符串。 | 正则表达式匹配了请求 URL 中的路径。 |
/food/aaa/pngs/image.png | 正则表达式匹配了请求 URL 中的路径。 |
/aaa/bbb/image.png | aaa.* 用于匹配请求路径中的特定字符串。 | 正则表达式匹配了请求路径中的 aaa/bbb/image.png 。 |
/aaa/bbb/image.png | aaa/.* 用于匹配请求路径中的特定字符串。 | 正则表达式匹配了请求路径中的 aaa/bbb/image.png 。 |