2017-07-09 38 views
0

密码休息邮件当前正在发送私人IP。我想低于如何配置liferay来获取正确的用户ip地址?

$ REMOTE_ADDRESS $变量liferay设置公共IP在密码重置通知。

内部liferay使用request.getRemoteAddr()。我应该如何配置liferay,使request.getRemoteAddr()给出正确的IP地址。

+0

你碰巧在你的应用服务器前面使用了Apache或者nginx吗? –

+0

谢谢奥拉夫我们使用的是Apache。 –

回答

1

我假设你正在使用mod_proxy_http将你的Apache httpd的请求转发给tomcat(或者你使用的任何应用服务器)。这意味着,有一个单独的HTTP请求,源自您的网络服务器。我假设这是你看到的地址,不管你处理什么请求。

解决这个问题的一种方法是使用AJP作为转发协议,而不是HTTP。你可以通过使用mod_proxy_ajp或mod_jk来做到这一点。这意味着您无法加密网络和应用程序服务器之间的流量,但是,它默认处理远程主机和其他问题。

可能有其他可行性,例如试验添加标题X-Forwarded-For。我个人比较喜欢AJP上的AJP作为转发协议,这就是为什么我从来不会去尝试替代方案。

基本上,这根本不涉及Liferay:远程主机在从Apache httpd到您的应用服务器的连接中丢失。 Liferay只是检索appserver告诉它关于请求的内容。