代理请求报头动作

OpenResty Edge 提供了以下动作来修改代理到上游的请求报头。

设置代理报头

这个页面规则中:

  • 使用了动作 设置代理报头
  • 启用了代理,方便检查检查动作执行结果。

设置代理报头 要求两个参数 报头 以及 。其中 的类型可以选择 字符传内置变量

内置变量 有以下取值:(请以您使用的 Edge Admin 为准,不同版本的支持情况不同)

  • 客户端地址
  • 客户端端口
  • 主机名
  • 协议
  • 请求报头 X-Forwarded-For 中的第一个地址
  • 请求报头 X-Forwarded-For 中的最后一个地址
  • 请求头
  • 系统主机名
  • SSL 客户端主题专有名称
  • SSL 客户端签发商专有名称
  • SSL 客户端验证结果

请求示例:

$ curl http://test.com/anything
{
  ...
  "headers": {
    "X-Proxy-Header": "127.0.0.1"
  },
  ...
}

本示例中使用了内置变量 客户端地址 来设置代理头 X-Proxy-Header

设置代理主机

这个动作的作用是设置代理主机名,只有一个参数 主机名

请求示例:

$ curl http://test.com/anything
{
  ...
  "headers": {
    "Host": "openresty-edge.com",
  },
  ...
}

可以看到,主机名从 test.com 被修改了成 openresty-edge.com

代理头追加值

这个动作会在指定的报头中追加值,以英文逗号(,)分割。它的的参数与 类似,参考 进行设置即可。

请求示例:

curl http://test.com/anything -H 'X-Route-Trace: 127.0.0.1'
{
  ...
  "headers": {
    "X-Route-Trace": "127.0.0.1,1.2.3.4"
  },
  ...
}

可以看到,请求的 X-Route-Trace 报头的原始值是 127.0.0.1,被修改成了 127.0.0.1,1.2.3.4, 其中,1.2.3.4 是页面规则中指定的值。