2009-05-04 63 views
8

我們將ASP.NET應用程序託管在位於硬件負載平衡器後面的兩個Web服務器(Server 2003,IIS 6)上。當我查看IIS日誌時,IIS(v6)日誌中的c-ip值始終是負載平衡器的IP地址。我注意到在http頭文件中,有一個X-Forwarded-For頭文件,它似乎有請求的IP地址。我能做些什麼來讓IIS在日誌中記錄此標題值?IIS日誌文件和負載均衡器?

回答

3

當通過代理服務器時,x-forwarded-for是負載平衡器的最多commonly used。你大概可以寫一個httpfilter,它可以自己調換;或IIS Tracer有能力玩標準文件;包括交換c-ip和x -forward字段。

如果不使用第三方報告工具;您可能希望將日誌轉儲到SQL Server中,您可以隨時操縱這些列。

我個人喜歡後者,這樣我就可以獲得所有服務器的聚合數據;我將其轉儲到同一個數據庫中的不同表中,然後從服務器場中的所有Web服務器進行報告。我還發現比在整個地方管理500MB左右的日誌文件更容易。

+0

你寫你自己的應用程序/腳本日誌轉儲到SQL還是你在網上找什麼東西? – twlichty 2009-05-04 19:09:46

+0

MS發佈瞭如何http://support.microsoft。com/kb/245243 – u07ch 2009-05-04 21:46:02

2

F5 networks在devcentral.f5.com上提供了一個ISAPI篩選器,它將採用x-forwarded-for並在日誌中使用它。

除此之外,您可以做的事情並不多 - 這就是TCP的工作原理。 :)

5

我不知道它是如何長久以來(但在Windows Server 2008及更高版本中)Advanced Logging extensionIIS 7和更高版本提供Custom logging functionality可用於收集(幾乎)任意信息在IIS日誌文件中,包括自定義HTTP請求(和響應)標頭,如X -Forwa rded - 對於

我今天剛剛在我們的服務器上設置了它,它運行得非常漂亮。

有一點要注意:不是由%COMPUTERNAME% - 服務器名編輯默認日誌定義,只需創建您的網站或全球您的服務器,以避免異常的一個新的「請求不支持的。」當試圖保存您的更改時。這發生在您嘗試編輯默認的定義在站點級別(感謝this thread的答案)。