微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache的ProxyPass:如何保留原来的IP地址

我们使用ProxyPass将所有“/ r”请求redirect到端口18080上的jboss,如下所示:

ProxyPreserveHost on ProxyPass /r http://localhost:18080/redirectService/ ProxyPassReverse /r http://localhost:18080/redirectService/

但是,这导致jboss的访问日志中logging的IP地址为“127.0.0.1”。 有人知道我们怎样才能保持HttpServletRequest请求来源的原始IP? 我们想从doGet()中的jboss servlet请求中获取它,

如何通用.htaccess来防止热链接

Tomcat通过IP地址限制访问

.htaccess与片段redirect

尝试使用var / www / html的符号链接

Apache POI autoSizeColumn不正确resize

您可以从X-Forwarded-For标题字段获取原始主机。

JasonW的回答很好。 但是由于apache httpd 2.4.6有一个替代方案:mod_remoteip

所有你必须做的是:

可能是你必须安装mod_remoteip包

启用模块:

Loadmodulee remoteip_module modules/mod_remoteip.so

将以下内容添加到您的apache httpd配置中。 请注意,您必须将此行添加到代理服务器的配置中。 您必须将其添加到代理目标httpd服务器 (代理服务器后面的服务器)的配置中:

RemoteIPHeader X-Forwarded-For

有关更多信息和更多选项,请参见http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html 。

这有一个更优雅的解释和不止一个可能的解决方案。 http://kasunh.wordpress.com/2011/10/11/preserving-remote-iphost-while-proxying/

这篇文章描述了如何在一个涉及代理的设置中使用一个流行的和一个较少的Apache模块来保存主机/ IP。

使用mod_rpaf模块,在后端服务器中安装并启用它,并在模块配置中添加以下指令。 RPAFenable On

RPAFsethostname在

RPAFproxy_ips 127.0.0.1

(2017编辑)mod_rpaf的当前位置: https : //github.com/gnif/mod_rpaf

如果你有这个能力,我建议使用mod-jk或者mod-proxy-ajp把请求从Apache传递给JBoss。 与使用HTTP代理请求相比,AJP协议更有效率,作为一个好处,JBoss会将请求视为来自原始客户端,而不是Apache。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐