本文档介绍火山引擎内容分发网络(CDN)中的 "回源 HTTP 请求头设置" 特性。
在回源请求中,CDN 会包含用户请求中的所有请求头。同时,CDN 还会添加一些默认请求头。参见 CDN 添加的默认请求头。
除了 CDN 添加的默认请求头,如果您希望回源请求中包含更多的头部,您可以配置回源 HTTP 请求头。
识别来自 CDN 的请求
您的源站除了收到来自 CDN 的请求,也有可能收到来自其他请求方的请求。或者您的源站使用了多个云厂商的 CDN 做内容传输加速。在这些情况下,您可以在回源请求中添加一个特定的请求头。在源站的请求日志中,您可以基于该请求头统计以下数据:
区分来自不同加速域名的请求
在 CDN 中,您为多个加速域名配置了相同的源站。这些加速域名有不同的配置,针对不同的使用场景。在这个情况下,您可以在回源请求中添加一个特定的请求头,以区分来自不同加速域名的请求。在源站的请求日志中,您可以基于该请求头统计数据。
在源站实施访问控制
您希望阻止来源不是 CDN 的用户请求。在这个情况下,您可以在回源请求中添加一个特定的请求头,然后在源站实施访问控制,阻止不包含该请求头的请求访问您的源站。
配置 | 说明 |
---|---|
配置类型 | 表示一个操作类型。该配置有以下选项:
|
头部名称 | 表示需要设置或者删除的一个头部。头部名称是大小写不敏感的。除了 注意事项 中列出的那些头部名称之外,您可以输入任意一个头部名称。头部名称不能超过 1,024 个字符,不能包含以下字符:
|
取值方式 | 对于您在 头部名称 中指定头部,该配置表示该头部值的类型,有以下选项:
|
头部取值 | 表示您在 头部名称 中指定头部的取值。
|
CDN 提供了以下变量。
说明
如果您配置了 回源 URL 改写 特性,除了 msec
和 origin_srv_addr
,这些变量的值是改写前的值。例如,您的加速域名是 example.com
。您在 "回源 URL 改写" 中配置将回源 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 | 表示 CDN 设置该回源请求头的时间,格式是 Unix 时间戳,精确到毫秒。 | 1704444754.917 |
scheme | 表示回源请求使用的协议。 | https |
origin_srv_addr | 表示源站的域名或者 IP 地址。 | www.example.com |
query_string | 表示回源请求 URL 中的查询字符串。 | ?size=small&color=red |
host | 表示回源请求中 Host 头部的值。 需要留意的是,CDN 在处理请求时可能会修改该头部的值。因此,不建议您使用该头部,而是使用 http_host 。 | example.com:8080 |
client_ip | 表示连接到 CDN,触发了本次回源请求的客户端的 IP 地址。 | 127.1.1.1 |
您设置的请求头名称不能以 x-bdcdn-
开头,也不能是以下任意头部。
注意
如果用户请求中包含以 x-bdcdn-
开头的头部,这些头部不会包含在回源请求中。
CDN 在回源请求中默认会添加以下头部。
请求头 | 描述 | 示例 |
---|---|---|
X-Forwarded-For | 表示一个 IP 地址列表,用于识别通过代理服务器转发的用户请求。列表中的第一个 IP 地址是发起请求的客户端的 IP 地址。该请求每经过一个代理服务器,这个代理服务器的 IP 地址就会被添加到列表末尾。列表中最后一个 IP 地址是发送该回源请求的 CDN 节点的 IP 地址。 | xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxx, xx.xx.xxx.xxx |
X-Forwarded-Protocol | 表示用户请求使用的协议。 | http |
X-Real-IP | 对于触发该回源请求的用户请求,该头部表示发送该用户请求的客户端 IP 地址。 | xxx.xxx.xxx.x |
X-Forwarded-Proto | 表示用户请求使用的协议。 | http |
X-Client-Scheme | 表示用户请求使用的协议。 | http |
X-Trace-via | 表示发送回源请求的 CDN 节点的标识。 | gycm |
Bd-Raw-Host | 表示用户请求的 URL 中的域名。 | www.example.com |
X-Bdcache-Trace-Id | 表示用户请求的 ID,由 CDN 生成。 | f455f0415d901f8aee3b2c7336bfad16 |
X-Tt-Trace-Id | 表示回源请求的 ID,由 CDN 生成。 | 202405301714110101720050051BB69184 |
说明
X-Forwarded-Protocol
、X-Forwarded-Proto
、X-Client-Scheme
这三个头部的含义相同。如果您不希望回源请求中包含这些头部,可以配置 "回源 HTTP 请求头设置" 删除这些头部。