我们有一个网络过滤器/负载均衡器,可将流量定向到我们的IIS 8.5(Windows 2012 R2)服务器。问题是在IIS日志中,我们需要记录实际客户端的源IP(即在“自定义”X-Forwarded-For
标题中提供。我无法使用IIS的“高级日志记录”功能来简单地创建另一列,因为我们的日志监控软件无法处理此自定义字段,也无法处理日志文件名后面的“_x”。
因此,我花了几个小时试图让微软的请求路由器帮助器自动将X-Forwarded-For
字段值转换为c-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)
答案 0 :(得分:2)
经过几个小时,我们发现了如何在IIS 8.5上启用它。以下是步骤:
C:\Windows\System32\inetsrv\config\applicationHost.config
并在globalModules部分下检查其模块注册(应如下所示)< add name =“ARRHelper”image =“%ProgramFiles%\ IIS \ ARR Helper \ requestRouterHelper.dll”/>
path="" / modules
< add name =“ARRHelper”/>
我希望这可以帮助那些同样有挫折感的人。
答案 1 :(得分:1)
谢谢bigmac。你的答案肯定有帮助。在我的环境中我必须做的一件事就是让它工作:
检查以确保在安装时修改了ApplicationHost.config。这将确认安装是否成功。
我尝试了几次尝试,并注意到只有在按此顺序执行这些步骤后才会起作用。如果您首先运行安装程序(而不是管理员),它将安装但不起作用。
答案 2 :(得分:0)
对于使用Windows 10的IIS 10的用户来说,bigmac提供的链接有效。此外,经过大量研究和反复试验,我发现在日志记录中包含自定义字段会阻止ARR记录X-Forwarded-For标头。我必须删除自定义日志记录字段,然后ARR开始正常工作。