2016-12-15 31 views
0

我們有一個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字段(我相信它應該這樣做)。基於我下面列出的參考網站,我已經做了以下內容:

  1. 從安裝在ARR V3安裝requestrouterhelper_x64.msi到我們的IIS 8.5服務器
  2. 我驗證了我能看到的文件(但並沒有改變任何東西)在:C:\ WINDOWS \ SYSTEM32 \ INETSRV \設置\架構\ arr_helper_schema.xml
  3. 我看不出有任何額外的模塊或功能,在IIS管理器(應該吧?)
  4. 查看日誌文件(在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)

回答

1

多小時後,我們發現瞭如何在IIS 8.5啓用此。以下是具體步驟:

  1. 下載從this site工具的64位版本。是否不是安裝通過安裝ARR v3 Web平臺安裝程序獲得的版本(這是最大的問題,它不工作)
  2. 解壓縮,並從管理員命令提示
  3. 打開C:\Windows\System32\inetsrv\config\applicationHost.config運行MSI和下globalModules部檢查其模塊登記(它應該是如下)

<添加名稱=「ARRHelper」圖像=「%ProgramFiles%\ IIS \ ARR Helper \ requestRouterHelper。DLL」 />

  • 在同一文件中,檢查或添加以下項中的部分的位置path=""/modules
  • <添加名稱= 「ARRHelper」 />

    我希望這可以幫助其他人有同樣的挫折。

    0

    謝謝BIGM AC。你的答案肯定有幫助。在我的環境中必須做的一件事情是讓它工作:

    1. 通過命令提示符運行.MSI作爲管理員(如bigmac所述)。但是,我注意到這樣做後,該程序並沒有實際安裝(檢查控制面板中的程序)。
    2. 右鍵單擊並再次安裝.MSI(不是來自命令提示符)。
    3. 檢查以確保ApplicationHost.config在安裝時已被修改。這將確認安裝是否成功。

      我嘗試了幾次嘗試,發現只有按照這個順序完成這些步驟後才能使用。如果您先運行安裝程序(而不是管理員),它將安裝但不起作用。