通过ARR与IIS 7进行Tomcat RemoteIpValve

时间:2013-10-04 00:29:19

标签: iis-7.5 tomcat7 arr

我正在尝试将IIS 7.5设置为反向代理,以通过ARR 3连接到Tomcat 7.

由于某种原因,当IIS转发请求时,x-forwarded-for标头包含远程端口,因此不显示类似:123.124.125.126我看到123.124.125.126:54321

不幸的是,这不适用于只需要IP地址的RemoteIpValve。

有没有办法从IIS中删除端口?或者在RemoteIpValve中?

更新:我尝试运行下面的命令,我可以看到它更新了applicationHost.config,但我仍然看到端口号(重新启动IIS):

appcmd.exe set config -section:system.webServer/proxy /includePortInXForwardedFor:"false" /commit:apphost

谢谢!

1 个答案:

答案 0 :(得分:0)

我最终使用了以下解决方法:

在IIS上,在%System32%/ inetsrv / config / applicationHost.config中,我在system.webServer / rewrite / globalRules / rule [name = ARR *]中添加了以下代码:

<severVariables>
  <set name="HTTP_X_REMOTE_ADDR" value="{REMOTE_ADDR}" />
</severVariables>

然后我在Tomcat的server.xml中将该名称指定给RemoteIpValve

<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-remote-addr" />

使用新添加的标头而不是X-Forwarded-For