2016-12-15 113 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在安装时已被修改。这将确认安装是否成功。

      我尝试了几次尝试,发现只有按照这个顺序完成这些步骤后才能使用。如果您先运行安装程序(而不是管理员),它将安装但不起作用。