
我們有 IIS7 伺服器位於 nginx 反向代理後面。
反向代理正在發送帶有訪問者 IP 位址的標準“HTTP_X_FORWARDED_FOR”標頭,但 IIS7 日誌記錄僅記錄 nginx 伺服器的 IP 位址(這是有道理的,但這不是我想要的)。
我該如何告訴 IIS7 改為記錄“HTTP_X_FORWARDED_FOR”標頭(或另外記錄它)?
(注意:我是 Linux 管理員,而不是 Windows 管理員,因此真誠地感謝明確的說明和連結)
答案1
這不是內建於 IIS 中的,但您可以安裝一個模組來執行此功能。它稱為 ARR 助手,但它適用於 IIS 前面的任何代理:
答案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。這個答案改編自連結頁面。
打開IIS管理器。
選擇網站或伺服器連接窗格,然後雙擊記錄。請注意,增強日誌記錄僅適用於網站層級日誌記錄 - 如果您在連接窗格,然後自訂字段的部分W3C 日誌記錄字段對話框被禁用。
在裡面格式下的字段記錄檔, 選擇萬維網聯盟然後單擊選擇字段...。
在裡面W3C 日誌記錄字段對話框,點選新增字段...。請注意,增強日誌記錄僅適用於網站層級日誌記錄 - 如果您在連接窗格,然後新增字段...被禁用。
在裡面新增自訂字段對話框中,輸入欄位名稱例如
c-ip-original
識別日誌檔案中的自訂欄位。請注意,欄位名稱不能包含空格。選擇請求頭在裡面來源類型列表。
X-FORWARDED-FOR
輸入來源。點選好的。
點選好的。
點選申請在裡面行動窗格以套用新配置。
配置自訂欄位後,IIS 將建立新的文字日誌文件,並在文件名稱後面附加「_x」以指示該文件包含自訂欄位。
請注意,從所有自訂欄位收集的資料的總大小不能超過 65,536 位元組。如果總數超過 65,536 字節,則 IIS 將截斷資料。