如果您需要改写用户回源请求中的HTTP Header,可以通过配置回源HTTP请求头实现,支持增加、删除、变更或替换回源HTTP请求头,满足更多实际业务需求。

背景信息

HTTP请求头是HTTP的请求消息头的组成部分之一,可携带特定请求参数信息并传递给服务器。

当CDN节点请求回源站拉取资源时,源站可获取到回源请求头中携带的信息。您可以通过该功能,改写用户回源请求中的HTTP Header信息,携带特定的参数信息给源站,实现特定业务需求。例如,通过X-Forwarded-For头部携带真实客户端IP至源站。

HTTP消息头
说明
  • 回源请求指用户请求中通过CDN回源的HTTP消息。回源HTTP请求头配置只会影响通过CDN回源的HTTP消息,对于CDN节点直接响应给用户的HTTP消息不做修改。
  • 不支持对泛域名配置回源HTTP请求头。

操作步骤

  1. 登录CDN控制台
  2. 在左侧导航栏,单击域名管理
  3. 域名管理页面,单击目标域名对应的管理
    域名管理
  4. 在指定域名的左侧导航栏,单击回源配置
  5. 单击回源HTTP请求头页签。
  6. 单击添加
  7. 配置回源HTTP请求头信息。
    重要 当不同的操作方式同时作用于同一个回源请求头参数时,会存在操作冲突。此时按照操作类型的优先级来执行,优先级顺序为 替换增加变更删除。例如,当增加和删除操作同时作用于同一个参数时,会先增加再删除。
    • 增加请求头参数HTTP请求头信息
      配置项 示例 说明
      请求头操作 增加 在回源HTTP请求中增加指定的请求头参数。
      自定义请求头参数 自定义回源请求头

      选择自定义回源请求头或选择已经预设好的请求头参数。

      自定义请求头名称 x-code

      自定义请求头名称为x-code。

      请求头值 key1, key2

      一个请求头参数中可以配置多个值,多个值用英文逗号(,)分隔。

      是否允许重复 允许
      • 允许:可以添加重复的请求头参数。例如x-code:key1x-code:key2
      • 不允许:添加同一个请求头参数,新值将覆盖旧值。例如先添加x-code:key1,再添加x-code:key2,最终的值为x-code:key2
    • 删除请求头参数删除
      配置项 示例 说明
      请求头操作 删除 删除所有与请求头参数名称匹配的参数值,无论是否有重复的请求头参数。
      自定义请求头参数 自定义回源请求头

      选择自定义回源请求头或选择已经预设好的请求头参数。

      自定义请求头名称 x-code

      自定义请求头名称为x-code。

    • 变更请求头参数变更
      配置项 示例 说明
      请求头操作 变更 当请求头参数不存在重复时,可以正常变更参数,如果有多个重复的请求头参数,则不允许变更。
      自定义请求头参数 自定义回源请求头

      选择自定义回源请求头或选择已经预设好的请求头参数。

      自定义请求头名称 x-code

      自定义请求头名称为x-code。

      请求头变更为 key1, key3

      一个请求头参数中可以配置多个值,多个值用英文逗号(,)分隔。

    • 替换请求头参数替换
      配置项 示例 说明
      请求头操作 替换 当请求头参数不存在重复时,可以正常替换参数,如果有多个重复的请求头参数,则不允许替换。
      自定义请求头参数 自定义回源请求头

      选择自定义回源请求头或选择已经预设好的请求头参数。

      自定义请求头名称 x-code

      自定义请求头名称为x-code。

      查找 key 正则表达式查找需要替换的参数值。
      替换为 abc 正则表达式替换需要替换的参数值。
      匹配 匹配所有
      • 匹配所有:所有匹配上的值都会被替换。例如x-code:key1,key2,key3,正则匹配值key替换为abc,替换后的结果为x-code:abc1,abc2,abc3
      • 仅匹配第一个:只有第一个匹配上的值会被替换。例如x-code:key1,key2,key3,正则匹配值key替换为abc,替换后的结果为x-code:abc1,key2,key3
  8. 单击确定

配置示例一

配置场景:在回源头里面添加XFF信息,给源站传递客户端IP和中间的代理服务器IP。

配置方法
  • 自定义请求头名称:X-Forwarded-For。
  • 请求头值:$proxy_add_x_forwarded_for。
配置

配置示例二

配置场景:在回源头里面添加客户端真实IP信息,给源站传递客户端IP地址信息。

配置方法
  • 自定义请求头名称:X-Real-IP。
  • 请求头参数:$remote_addr。
配置