24 / 04 / 21

配置回源 HTTP 请求头

操作说明

在内容分发网络中,您可以对请求头进行以下操作:

  • 设置请求头字段:如果您需要在回源请求头中添加字段,可以通过该操作进行配置。如果在匹配时发现请求头中已存在该字段,已有的字段值会被覆盖。匹配时不区分大小写。比如您添加了字段 X-Form:huoshan,但是请求头中已存在字段 x-form:hs。此时,请求头中该字段会更新为 x-form:huoshan

  • 删除请求头字段:如果您不需要回源请求头中某些字段,可以通过该操作进行配置。内容分发网络会在回源请求的请求头中删除这些字段。

在您设置字段时,可以输入任意字段。但是内容分发网络不支持设置某些字段,具体参见下方注意事项。

配置说明

配置说明
回源请求头部操作设置具体的操作。您可以设置以下值:
  • 设置:表示添加字段或者对已有字段设置特定值。

  • 删除:表示删除特定字段。 | | 回源请求头部名称 | 输入一个请求头字段。您可以设置任意的名称,例如 X-Form。字段名称不能超过 1,024 个字符,可以包含除了以下字符的可打印 ASCII 字符:

  • 下划线(_)、空格、双引号(")、Delete(ASCII code 127) | | 取值方式 | 设置请求头字段的取值方式。您可以设置以下值:

  • 常量:表示请求头字段的值是一个固定值。您需要在 回源请求头部取值 中设置这个值。

  • 变量:表示请求头字段的值来自一个变量字段。您需要在 回源请求头部取值 列表中选择一个变量字段。该变量字段的值会作为请求头字段的值。参见下方的变量字段。

  • 自定义:表示请求头字段的值是变量字段与常量字符串拼接后的字符串。在拼接字符串中,变量字段使用 ${变量名} 表示。 为了方便您输入变量字段,您可以先输入 $。此时,输入框上方会出现一个变量字段列表。在列表中,您可以选择一个或者多个变量字段,点击 确定,然后再插入常量字符串。
    示例值:aaa${http_host}bbb${msec}ccc | | 回源请求头部取值 | 设置该请求头字段的值。字段值不能超过 1,024 个字符,可以包含除了以下字符的可打印 ASCII 字符:

  • 美元符号($),Delete(ASCII code 127) | | 操作 | 表示可以对该规则进行的操作。比如删除该规则。 |

变量字段

内容分发网络提供了以下变量字段。需要留意的是,如果加速域名的配置改写了回源请求,这些变量的值依然是改写前的值(不适用 msecorigin_srv_addr 这两个变量)。例如您的加速域名是 example.com,回源 Host 配置为 img.example.com,那么 http_host 变量的值依然是 example.com

字段名说明示例值
uri表示回源请求 URL 中的路径。/dir/volcano.php
request_uri表示回源请求 URL 中的路径和查询字符串(query string)。/dir/volcano.php?color=red&n=10
http_host表示回源请求中 Host 头部的值。volcengine.com:8080
args表示回源请求 URL 中的查询字符串。color=red&n=10
msec表示内容分发网络设置该回源请求头的时间,格式是 Unix 时间戳,精确到毫秒。1704444754.917
scheme表示回源请求使用的协议。https
origin_srv_addr表示源站的域名或者 IP 地址。www.example.com
query_string表示回源请求 URL 中的查询字符串。?size=small&color=red
host表示回源请求中 Host 头部的值。

需要留意的是,内容分发网络在处理请求时可能会修改该字段的值。因此,不建议您使用该字段,而是使用 http_host。 | example.com:8080 | | client_ip | 表示连接到内容分发网络,触发了本次回源请求的客户端的真实 IP 地址。 | 127.1.1.1 |

注意事项

在您设置字段时,不能使用以 x-bdcdn- 开头的字段,也不能使用以下字段,不然会报错。字段名称不区分大小写。

  • x-bdcache-trace-id

  • x-real-ip

  • x-client-scheme

  • x-tos-request-id

  • bd-bdcdn-oss-switch

  • x-storagegw-request-id

  • x-sign

如果您输入了这些字段名中的任意一个,会收到以下错误:
暂不支持配置此类头部!