更新时间:2025-07-10 GMT+08:00

配置回源请求头

如果您需要修改用户回源请求URL中的HTTP头部信息,可以通过配置回源请求头参数来实现。本章帮您了解回源请求头的配置方法。

背景信息

当用户请求的内容CDN节点无缓存时,CDN会回源请求资源。如果您想要改写用户回源请求URL的HTTP头部信息,可以在CDN控制台完成相关配置。

HTTP消息头,是指在超文本传输协议(Hypertext Transfer Protocol,HTTP)的请求和响应消息中的消息头部分,定义了HTTP传输过程中的具体参数。

注意事项

  • 回源请求头配置只会影响通过CDN回源的HTTP消息,对于CDN节点直接响应给用户的HTTP消息不做修改。
  • 同一个请求头不允许同时存在两个不同的取值。
  • 如果您的域名在后台有特殊配置,暂不支持配置回源请求头。
  • 最多可添加10条回源请求头。

操作步骤

  1. 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
  2. 在左侧菜单栏中,选择域名管理
  3. 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
  4. 选择“回源配置”页签。
  5. “回源请求头”配置模块,单击“添加”按钮。
  6. 配置回源请求头信息
    • 添加:在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}}。
    • 删除:删除当前回源请求头配置。单击回源请求头列表“操作”列“删除”按钮,在同步配置弹框勾选其他需要删除该头部的域名,单击“确定”,完成配置。
  7. 单击“确定”,完成配置。

配置示例

加速域名“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