2013-11-21 32 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