我們有一個Web過濾器/負載均衡器,可將流量導向我們的IIS 8.5(Windows 2012 R2)服務器。問題是,在IIS日誌中,IP地址(c-ip字段)被記錄爲負載均衡器(Sophos UTM,而不是微軟的ARR)的本地地址,而我們需要記錄實際客戶端的源IP(這是在「custom」X-Forwarded-For
標題中提供)。我無法使用IIS的「高級日誌記錄」功能來簡單地創建另一列,因爲我們的日誌監視軟件無法處理此自定義字段,也無法處理附加到日誌文件名稱的「_x」。如何爲IIS 8.5配置/啓用請求路由器助手
因此,我花了大量的時間試圖讓微軟的Request Router Helper自動將X-Forwarded-For
字段值轉換爲c-ip
字段(我相信它應該這樣做)。基於我下面列出的參考網站,我已經做了以下內容:
- 從安裝在ARR V3安裝requestrouterhelper_x64.msi到我們的IIS 8.5服務器
- 我驗證了我能看到的文件(但並沒有改變任何東西)在:C:\ WINDOWS \ SYSTEM32 \ INETSRV \設置\架構\ arr_helper_schema.xml
- 我看不出有任何額外的模塊或功能,在IIS管理器(應該吧?)
- 查看日誌文件(在IISRESET和即使重新啓動)和C-IP值仍然被記錄爲127.0.0.1,不是客戶端的IP地址
是否有任何其他的事情,我需要做的啓用/從配置ARR請求路由器助手自動轉換客戶端IP到c-ip字段?
參考文獻:
IIS7/8: Logging the real client IP in the IIS hit logs
Client-ip not logged on application server when using ARR (original version for IIS 7)
ARR Helper (for IIS8 - see accepted answer)