2013-11-21 34 views
2

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

因此,我使用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转发-FOR:10.87.50.47.51579

经过我的测试: X转发-FOR:100.100.100.100,10.87.50.47 .51579

为什么不能取代原来的值?或者有没有其他的方法来修改X-Forwarded-For头部?

任何帮助我会appricaite!谢谢

回答

2

我找到了答案。在应用程序请求路由缓存 - >服务器代理设置 - >在下面的头保留客户端IP - >保留空白。

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

保留客户端IP以下头:

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

+2

当我离开X-Forwarded-For blank时,IIS8中出现错误“头名称不正确,头名称必须使用可打印字符”。它在IIS 8中工作,或者可能是错误的? – Mukun