我正在尝试将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
谢谢!
答案 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