1

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

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

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

有没有办法从 IIS 中删除端口?还是在 RemoteIpValve 中?

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

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

谢谢!

4

1 回答 1

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

于 2013-10-04T23:43:57.137 回答