配置回源请求头
如果您需要修改用户回源请求URL中的HTTP头部信息,可以通过配置回源请求头参数来实现。本章帮您了解回源请求头的配置方法。
背景信息
当用户请求的内容CDN节点无缓存时,CDN会回源请求资源。如果您想要改写用户回源请求URL的HTTP头部信息,可以在CDN控制台完成相关配置。
HTTP消息头,是指在超文本传输协议(Hypertext Transfer Protocol,HTTP)的请求和响应消息中的消息头部分,定义了HTTP传输过程中的具体参数。
注意事项
- 回源请求头配置只会影响通过CDN回源的HTTP消息,对于CDN节点直接响应给用户的HTTP消息不做修改。
- 同一个请求头不允许同时存在两个不同的取值。
- 如果您的域名在后台有特殊配置,暂不支持配置回源请求头。
- 最多可添加10条回源请求头。
操作步骤
- 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
- 在左侧菜单栏中,选择 。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“回源配置”页签。
- 在“回源请求头”配置模块,单击“添加”按钮。
- 配置回源请求头信息
- 添加:在CDN侧添加回源请求头参数,用来改写用户请求URL中的HTTP头部信息。
图1 添加回源请求头表1 参数说明 配置项
示例
说明
请求头操作
设置
在回源HTTP请求中增加指定的请求头参数。
- 如果用户请求URL的HTTP头部携带X-test参数,取值111。CDN侧设置的X-test取值为aaa,那么回源时X-test的取值为aaa。
- 如果用户请求URL的HTTP头部没有携带X-test参数,那么回源时增加X-test,取值为aaa。
删除
删除用户请求URL中已经存在的HTTP头部信息。
- 如果用户请求URL的HTTP头部携带X-test参数,回源时会删除该参数。
请求头参数
X-test
- 长度1~100。
- 以字母开头,由数字0-9、字符a-z、A-Z,及特殊符“-”组成。
请求头取值
aaa
- 长度为1~1000。
- 由数字0 - 9、字符a - z、A - Z,及特殊符“.”、“-”、“_”、“*”、“#”、“!”、“&”、“+”、“|”、“^”、“~”、“'”、“"”、“/”、“:”、“;”、“,”、“=”、“@”、“?”、“<”、“>”、“$”、“{”、“}”组成。
- “${”和“}”必须成对出现。
- 支持配置以下变量:
- ${arg_xxx}:获取请求参数中名为xxx的值,其中xxx为可变参数,支持配置大小写字母、数字0-9、及特殊字符“-”、“_”、“.”、“~”。且xxx的值区分大小写,即${arg_test}和${arg_TEST}代表不同的值。
- ${http_xxx}:获取名为xxx的请求头的值,其中xxx为可变参数,支持配置大小写字母、数字0-9、及特殊字符“_”、“.”。
- xxx的值不区分大小写,即${http_test}和${http_TEST}代表相同的值。
- 如需通过变量获取请求头xxx的值,配置请求头时需要使用“_”替换“-”,例如:获取请求头X-CCDN-Test的值时,需要配置为${http_X_CCDN_Test}。
- ${request_method}:获取请求方法。
- ${host}:加速域名。
- ${remote_addr}:客户端IP。
- 变量支持拼接不支持嵌套,即支持配置${host}and${arg_name},不支持配置${${host}}。
- 编辑:修改当前回源请求头取值或操作。单击回源请求头列表“操作”列“编辑”按钮,弹框如下:
图2 编辑回源请求头配置项
示例
说明
请求头操作
设置
在回源HTTP请求中增加指定的请求头参数。
- 如果用户请求URL的HTTP头部携带X-test参数,取值111。CDN侧设置的X-test取值为aaa,那么回源时X-test的取值为aaa。
- 如果用户请求URL的HTTP头部没有携带X-test参数,那么回源时增加X-test,取值为aaa。
删除
删除用户请求URL中已经存在的HTTP头部信息。
- 如果用户请求URL的HTTP头部携带X-test参数,回源时会删除该参数。
请求头参数
X-test
此处无法修改。
请求头取值
aaa
- 长度为1~1000。
- 由数字0 - 9、字符a - z、A - Z,及特殊符“.”、“-”、“_”、“*”、“#”、“!”、“&”、“+”、“|”、“^”、“~”、“'”、“"”、“/”、“:”、“;”、“,”、“=”、“@”、“?”、“<”、“>”、“$”、“%”、“{”、“}”组成。
- “${”和“}”必须成对出现。
- 支持配置以下变量:
- ${arg_name}:获取请求参数中为name的参数值(name是可变的)。
- ${http_name}:获取名为name的请求头的值(name是可变的)。
- ${request_method}:获取请求方法。
- ${host}:加速域名。
- ${remote_addr}:客户端IP。
- 变量支持拼接不支持嵌套,即支持配置${host}and${arg_name},不支持配置${${host}}。
- 删除:删除当前回源请求头配置。单击回源请求头列表“操作”列“删除”按钮,在同步配置弹框勾选其他需要删除该头部的域名,单击“确定”,完成配置。
- 单击“确定”,完成配置。
配置示例
加速域名“www.example.com”的回源请求头设置如下:
当用户访问“http://www.example.com/abc.jpg”文件时,CDN节点没有缓存该资源,CDN回源请求资源。回源时增加“X-cdn头部”,同时删除“X-test头部”。
使用限制
- 如果您的后台存在特殊配置,暂不支持配置Content-Type、Cache-Control、Expires。
- 以下请求头仅支持修改响应头信息,不支持将“请求头操作”类型设置为“删除”:
Expires
Content-Disposition
Content-Type
Content-Language
Cache-Control
-
- 目前不支持添加/删除/编辑以下标准头部信息:
a_dynamic
cross-origin-embedder-policy
origin
strict-transport-security
accept
cross-origin-opener-policy
ping-from
te
accept-ch
cross-origin-resource-policy
ping-to
timing-allow-origin
accept-charset
date
pragma
tk
accept-ch-lifetime
device-memory
proxy-authenticate
trailer
accept-push-policy
dnt
proxy-authorization
transfer-encoding
accept-ranges
dpr
public-key-pins
upgrade
accept-signature
early-data
public-key-pins-report-only
upgrade-insecure-requests
access-control-allow-credentials
etag
push-policy
vary
access-control-allow-headers
expect
range
via
access-control-allow-methods
expect-ct
referer-policy
viewport-width
access-control-allow-origin
feature-policy
report-to
warning
access-control-expose-headers
forwarded
retry-after
width
access-control-max-age
from
save-data
www-authenticate
access-control-request-headers
host
sec-fetch-dest
x-client-ip
access-control-request-method
if-match
sec-fetch-mode
x-content-type-options
age
if-modified-since
sec-fetch-site
x-dns-prefetch-control
allow
if-none-match
sec-fetch-user
x-download-options
alt-svc
if-range
sec-websocket-accept
x-firefox-spdy
authorization
if-unmodified-since
sec-websocket-extensions
x-forwarded-for
clear-site-data
keep-alive
sec-websocket-key
x-forwarded-host
connection
large-allocation
sec-websocket-protocol
x-frame-options(xfo)
content-dpr
last-event-id
sec-websocket-version
x-permitted-cross-domain-policies
content-encoding
last-modified
server
x-pingback
content-length
link
server-timing
x-powered-by
content-location
location
service-worker-allowed
x-requested-with
content-range
max-age
signature
x-robots-tag
content-security-policy
max-forwards
signed-headers
x-ua-compatible
content-security-policy-report-only
nel
sourcemap
x-xss-protection