如何通过Java SevletRequest#GetRemoteAddr()从Apache反向代理获取真实的客户端IP

时间:2019-02-19 10:12:22

标签: apache http-headers reverse-proxy ip-address servlet-3.0

我们在Apache v2.4上的Tomcat8前面有Windows server 2008 R2作为反向代理服务器。该Web应用程序将使用下面的代码来检索客户端远程地址。

this.getThreadLocalRequest().getRemoteAddr();

但是,在这种情况下,它将是127.0.0.1。我们无法更改用于从X-Forwarded-For标头检索远程地址的Web应用程序代码。 Apache可以通过任何方式将Remote_Addr头作为实际的客户端IP来覆盖Java Servlet请求的检索吗?

mod-rpaf似乎不支持Apache v2.4,并且我们找不到该模块的Windows版本。我们尝试了如下的mod_remoteip模块。但是仍然没有运气。

LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 127.0.0.1
RemoteIPTrustedProxy 127.0.0.1
RemoteIPHeader Remote_Addr
RemoteIPHeader Remote-Addr
RemoteIPHeader X-Forwarded-Host
RemoteIPHeader X-Forwarded-Server

谢谢

0 个答案:

没有答案