我们有一个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)