【问题标题】:Adding a custom header to ARR requests向 ARR 请求添加自定义标头
【发布时间】:2012-11-15 09:59:06
【问题描述】:

我正在使用 ARR 作为反向代理在 IIS 后面运行服务。我知道有x-forwarded-forx-arr-log-id 标头被传递。但是,我想要的是传入的私钥,以便支持应用程序明确知道请求不是本地的(即使 ARR 服务器是)。我看过一些关于添加/替换服务器变量的帖子,但这似乎不是通过支持应用程序上的请求标头来实现的。

我猜肯定有一些 web.config 设置可以做到这一点,但到目前为止还没有找到它。

例如:X-PRIVATE-TOKEN: We are the children of Korn!

这样我就可以相信x-forwarded-for 地址是实际地址,而不是简单地不信任所有代理请求的 IP 地址引用。

【问题讨论】:

  • 我知道这个问题可能同样与 ServerFault 相关,但是鉴于手动调整 Web.config 更典型地是开发人员的领域,我认为这将是在这里实际获得答案的最佳位置。

标签: iis reverse-proxy iis-arr


【解决方案1】:

尝试:

<rule name="myRule_01">
  ...
  <serverVariables>
    <set name="HTTP_X_PRIVATE_TOKEN" value="We are the children of Korn!" />
  </serverVariables>
  ...
</rule>

http 请求的头部字段为:x-private-token

【讨论】:

    【解决方案2】:

    IIS.net 提供的答案似乎是相关 URL 重写模块的一部分:

    请求标头的设置使用与服务器相同的机制 变量,但具有特殊的命名约定。如果服务器变量 集合中的名称以“HTTP_”开头,然后这个 导致根据以下设置设置 HTTP 请求标头 以下命名约定:

    名称中的所有下划线(“_”)符号都转换为破折号 (“-”)。所有字母都转换为小写。 “HTTP_”前缀是 删除例如以下配置用于设置 请求上的自定义 x-original-host 标头:

    &lt;set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" /&gt;

    【讨论】:

    • 天哪,这是令人费解的,但它确实有效。 7 年后非常感谢您!
    猜你喜欢
    • 2017-11-06
    • 2013-11-13
    • 2021-08-25
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多