如何在 IIS 反向代理设置上设置 X-Forwarded-For 标头?

Joh*_*iao 7 iis reverse-proxy url-rewriting http-headers

使用 IIS 作为反向代理时,我想将远程用户的 IP 地址传递到我的后端 Web 服务器。这必须使用 X-Forwarded-For 标头来完成。我只想在 X-Forwarded-For 标头中保留远程用户 IP,这会清除任何其他代理服务器 IP。

所以我使用Url重写代理来测试是否可以修改X-Forwarded-For。这是我的设置:

<rule name="replace X forward for">
    <match url=".*" />
    <serverVariables>
        <set name="HTTP_X_FORWARDED_FOR" value="100.100.100.100" />
    </serverVariables>
    <action type="None" />
</rule>
Run Code Online (Sandbox Code Playgroud)

在我测试之前 X-FORWARDED-FOR:10.87.50.47.51579

经过我的测试:X-FORWARDED-FOR:100.100.100.100,10.87.50.47.51579

为什么不能替换原来的值?或者有没有其他方法可以修改 X-Forwarded-For 标头?

任何帮助我都会appricaite!谢谢

Joh*_*iao 5

我找到了答案。在 Application Request Routing Cache-->Server Proxy Settings--> Preserve client IP in the following header--> 留空。

http://technet.microsoft.com/en-us/library/dd443533(v=ws.10).aspx

在以下标头中保留客户端 IP:

指示标头是否应保留指定标头值的客户端 IP 地址。默认值为 X-Forwarded-For。如果将此字段留空,则不会将任何客户端 IP 地址作为自定义标头传递到应用程序服务器。

  • 当我将 X-Forwarded-For 留空时,在 IIS8 中出现错误“标题名称不正确。标题名称必须使用可打印字符”。它在 IIS 8 中是否有效,或者可能有什么问题? (3认同)