如何为IIS 8.5配置/启用请求路由器帮助程序

时间:2016-12-15 22:46:06

标签: iis iis-8.5 arr

我们有一个网络过滤器/负载均衡器,可将流量定向到我们的IIS 8.5(Windows 2012 R2)服务器。问题是在IIS日志中,我们需要记录实际客户端的源IP(即在“自定义”X-Forwarded-For标题中提供。我无法使用IIS的“高级日志记录”功能来简单地创建另一列,因为我们的日志监控软件无法处理此自定义字段,也无法处理日志文件名后面的“_x”。

因此,我花了几个小时试图让微软的请求路由器帮助器自动将X-Forwarded-For字段值转换为c-ip字段(我相信它应该这样做) 。根据我在下面列出的参考站点,我做了以下几点:

  1. 将ARR v3安装中的requestrouterhelper_x64.msi安装到我们的IIS 8.5服务器上
  2. 我验证了我可以在以下位置看到(但没有更改任何内容)的文件:C:\ Windows \ System32 \ inetsrv \ config \ schema \ arr_helper_schema.xml
  3. 我在IIS管理器中看不到任何其他模块或功能(我应该吗?)
  4. 查看了日志文件(在IISRESET之后甚至重启)并且c-ip值仍然被记录为127.0.0.1,而不是客户端的IP地址
  5. 从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)

3 个答案:

答案 0 :(得分:2)

经过几个小时,我们发现了如何在IIS 8.5上启用它。以下是步骤:

  1. this site 下载该工具的64位版本。 安装通过安装ARR v3 Web平台安装程序获得的版本(这是它无法正常工作的最大问题)
  2. 从管理员命令提示符解压缩并运行MSI
  3. 打开C:\Windows\System32\inetsrv\config\applicationHost.config并在globalModules部分下检查其模块注册(应如下所示)
  4.   

    < add name =“ARRHelper”image =“%ProgramFiles%\ IIS \ ARR Helper \ requestRouterHelper.dll”/>

    1. 在同一文件中,在部分path="" / modules
    2. 中检查或添加以下条目
        

      < add name =“ARRHelper”/>

      我希望这可以帮助那些同样有挫折感的人。

答案 1 :(得分:1)

谢谢bigmac。你的答案肯定有帮助。在我的环境中我必须做的一件事就是让它工作:

  1. 通过命令提示符运行.MSI作为管理员(如bigmac所说)。但是,我注意到在执行此操作后程序实际上没有安装(检查控制面板中的程序)。
  2. 右键单击并再次安装.MSI(而不是从命令提示符下)。
  3. 检查以确保在安装时修改了ApplicationHost.config。这将确认安装是否成功。

    我尝试了几次尝试,并注意到只有在按此顺序执行这些步骤后才会起作用。如果您首先运行安装程序(而不是管理员),它将安装但不起作用。

答案 2 :(得分:0)

对于使用Windows 10的IIS 10的用户来说,bigmac提供的链接有效。此外,经过大量研究和反复试验,我发现在日志记录中包含自定义字段会阻止ARR记录X-Forwarded-For标头。我必须删除自定义日志记录字段,然后ARR开始正常工作。