You need to enable JavaScript to run this app.
导航

配置回源 HTTP 请求头

最近更新时间2024.01.12 15:10:33

首次发布时间2022.02.23 13:19:00

本文档介绍如何在火山引擎内容分发网络中配置 HTTP 请求头字段。

如果您希望在回源时,回源请求中包含自定义请求头字段,那么您可以配置 HTTP 请求头。

适用场景

识别来自内容分发网络的请求
您的源站除了收到来自内容分发网络的请求,也有可能收到来自其他请求方的请求。或者您的源站使用了多个云厂商的内容分发网络做内容传输加速。在这些情况下,您可以在回源请求中添加一个特定的请求头。在源站的请求日志中,您可以基于该请求头统计以下数据:

  • 统计有多少请求没有通过火山引擎内容分发网络,而是直接访问您的源站。
  • 统计在多个云厂商中,有多少请求是来自火山引擎的内容分发网络的。

区分来自不同加速域名的请求
您可能会为多个加速域名配置了相同的源站。这些加速域名有不同的配置给来自不同场景的用户来访问。此时,您可以在回源请求中添加一个特定的请求头,以区分来自不同加速域名的请求。在源站的请求日志中,您可以基于该请求头统计数据。

在源站实施访问控制
您可能不希望用户直接访问您的源站,而是通过火山引擎内容分发网络进行访问。此时,您可以在回源请求中添加一个特定的请求头。然后在源站实施访问控制,阻止不包含该请求头的请求访问您的源站。

操作说明

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

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

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

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
    页面上方的筛选条件和搜索框可以帮助您快速找到要配置的域名。
  4. 在域名页面上,点击 回源配置 页签。
  5. 在页面右上方,点击 编辑配置
  6. HTTP 请求头设置 下方,点击 添加规则
    您最多可以添加 50 条规则。

此时,在规则列表中会出现一条待配置的规则。
alt

  1. 参照文档下方的配置说明对该规则进行配置。
  2. 如果您需要添加更多规则,点击 添加规则,然后进行相应配置。
  3. 配置完成后,在页面右上方,点击 提交编辑

配置说明

配置说明

回源请求头部操作

设置具体的操作。您可以设置以下值:

  • 设置:表示添加字段或者对已有字段设置特定值。
  • 删除:表示删除特定字段。

回源请求头部名称

输入一个请求头字段。您可以设置任意的名称,例如 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

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

alt