![](/img/trans.png)
[英]How to set X-Forwarded-For in PHP to sent client IP with simplexml_load_file
[英]Getting Client IP Using PHP with Load Balancer (X-Forwarded-For Header)
這是我的情況:我有一個使用IIS 7
和 F5 負載平衡器設置的 PHP 網站。 我需要檢索訪問服務器的客戶端 IP 地址。
正如在這種情況下預期的那樣, $_SERVER['REMOTE_ADDR']
返回負載均衡器的 IP 地址,而不是實際的客戶端 PC。 通常,我知道$_SERVER['HTTP_X_FORWARDED_FOR']
將是返回實際客戶端 PC IP 地址的變量,但無論出於何種原因,此處為空。 換句話說,返回X-Forwarded-For
標頭什么都不返回 - 我在這里做什么?
如何添加 X-Forwarded-For 標頭並配置 IIS 日志記錄
X-Forwarded-For (XFF) HTTP 標頭字段是一種標准方法,用於識別通過 Kemp LoadMaster 或任何代理連接到服務器的客戶端的原始 IP 地址。
Kemp LoadMaster 允許我們在 Layer7 以非透明方式使用時通過插入 X-Forwarded-For 標頭將客戶端的 IP 地址提供給目標 Real Server。
插入 X-Forwarded-For 標頭允許 Real Server 在其日志中記錄客戶端源 IP 地址。
使用 LoadMaster 添加 X-Forwarded-For 標頭可以作為全局設置或作為每個虛擬服務設置完成。 有關如何添加標題的步驟,請參閱下面的相關部分。
注意:添加 X-Forwarded-For 標頭僅適用於具有 SSL 卸載的 HTTP 和 HTTPS 流量。
全局設置附加 X-Forwarded-For 標頭
在 LoadMaster 用戶界面 (UI) 的主菜單中,選擇 System Configuration > Miscellaneous Options > L7 Configuration > Additional L7 Header > X-Forwarded-For。
為每個虛擬服務設置額外的 X-Forwarded-For 標頭
在 LoadMaster WUI 的主菜單中,選擇 Virtual Services > View/Modify Services。 單擊相關虛擬服務上的修改。 展開高級屬性部分。 在添加 HTTP 標頭下拉列表中,選擇 X-Forwarded-For (No Via) 或 X-Forwarded-For (+ Via)。
在 Microsoft Server 2012 上配置自定義 IIS 日志記錄字段
在 IIS 8.5 及更高版本中,可以添加自定義日志記錄字段來記錄 X-Forwarded-For 標頭,以便在不使用透明度時記錄客戶端的源 IP 地址。
導航到將使用 X-Forwarded-For 日志記錄的站點,然后單擊日志記錄和打開功能。
單擊選擇字段...選項
單擊添加字段...選項。
如下所示配置字段:
字段名稱:X-Forwarded-For
源類型:請求頭
源名稱:X-Forwarded-For(語法重要)
單擊確定兩次。
單擊日志記錄選項頁面右上角的應用。
現在,通過導航到虛擬服務並刷新幾次來生成一些日志流量。
轉到高級日志文件的位置並打開新創建的日志文件。
默認位置是 C:\\inetpub\\logs\\LogFiles\\W3SVC1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.