2009-05-04 91 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的答案)。