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

9
当使用IIS作为反向代理时,我希望将远程用户的IP地址通过X-Forwarded-For标头传递给后端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>

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

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

为什么不能替换原始值?或者有其他方法修改X-Forwarded-For标题吗?

我将非常感激任何帮助!谢谢

2个回答

5
我找到了答案。在应用请求路由缓存中——〉服务器代理设置——〉保留客户端IP地址的标头——〉将其留空即可。
保留以下标头中的客户端IP地址:
指定是否应该为指定标头值保留客户端IP地址。默认值为X-Forwarded-For。如果将此字段留空,则不会传递任何客户端IP地址作为自定义标头到应用程序服务器。 http://technet.microsoft.com/en-us/library/dd443533(v=ws.10).aspx

6
当我将 X-Forwarded-For 留空时,在 IIS8 中会出现错误:"is an incorrect header name. the header name must use printable characters"。它能在 IIS 8 中使用吗?或者可能出了什么问题? - Mukun

-1
我得到了和Mukun一样的结果。我将字段设置为“无”并获得了我要寻找的结果。

输入图像描述


3
这是一个“我也是”吗?还是对Mukun在另一个答案评论中描述的问题的回答?或者,这可能是根据此页面上唯一相关的问题(顶部的那个问题)的[回答]所作出的回答,但我怀疑。 - Yunnosch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接