簡體   English   中英

使用 PHP 和負載均衡器獲取客戶端 IP(X-Forwarded-For 標頭)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM