如何最好地配置 IIS7 日誌記錄以捕獲“HTTP_X_FORWARDED_FOR”標頭

如何最好地配置 IIS7 日誌記錄以捕獲“HTTP_X_FORWARDED_FOR”標頭

我們有 IIS7 伺服器位於 nginx 反向代理後面。

反向代理正在發送帶有訪問者 IP 位址的標準“HTTP_X_FORWARDED_FOR”標頭,但 IIS7 日誌記錄僅記錄 nginx 伺服器的 IP 位址(這是有道理的,但這不是我想要的)。

我該如何告訴 IIS7 改為記錄“HTTP_X_FORWARDED_FOR”標頭(或另外記錄它)?

(注意:我是 Linux 管理員,而不是 Windows 管理員,因此真誠地感謝明確的說明和連結)

答案1

這不是內建於 IIS 中的,但您可以安裝一個模組來執行此功能。它稱為 ARR 助手,但它適用於 IIS 前面的任何代理:

http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx

答案2

現在有一個 IIS7 模組可以讓您記錄自訂標頭。

如何: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---custom-logging/

答案3

雖然問題被標記為 iis-7,但這是在 X-Forwarded-For 和 IIS 上搜索時的熱門搜索,因此我想我會繼續為 IIS 8.5 提供此資訊。

IIS 8.5 及更高版本

IIS 8.5 引進了增強的日誌記錄此功能允許管理員輕鬆記錄 HTTP 請求標頭,例如 X-Forwarded-For。這個答案改編自連結頁面。

  1. 打開IIS管理器

  2. 選擇網站或伺服器連接窗格,然後雙擊記錄。請注意,增強日誌記錄僅適用於網站層級日誌記錄 - 如果您在連接窗格,然後自訂字段的部分W3C 日誌記錄字段對話框被禁用。

  3. 在裡面格式下的字段記錄檔, 選擇萬維網聯盟然後單擊選擇字段...

  4. 在裡面W3C 日誌記錄字段對話框,點選新增字段...。請注意,增強日誌記錄僅適用於網站層級日誌記錄 - 如果您在連接窗格,然後新增字段...被禁用。

  5. 在裡面新增自訂字段對話框中,輸入欄位名稱例如c-ip-original識別日誌檔案中的自訂欄位。請注意,欄位名稱不能包含空格。

  6. 選擇請求頭在裡面來源類型列表。

  7. X-FORWARDED-FOR輸入來源

  8. 點選好的

  9. 點選好的

  10. 點選申請在裡面行動窗格以套用新配置。

配置自訂欄位後,IIS 將建立新的文字日誌文件,並在文件名稱後面附加「_x」以指示該文件包含自訂欄位。

請注意,從所有自訂欄位收集的資料的總大小不能超過 65,536 位元組。如果總數超過 65,536 字節,則 IIS 將截斷資料。

相關內容