Java 如何在jsp中获得真正的服务器名,而不是代理';姓名

Java 如何在jsp中获得真正的服务器名,而不是代理';姓名,java,apache,jsp,jboss,reverse-proxy,Java,Apache,Jsp,Jboss,Reverse Proxy,我有以下(简化)设置。 从客户端我调用http://somedomain.com/my.jsp 通过代理将其转发到apache 1或apache 2 在我的jsp中,我想要server1 domain.com或server2 domain.com而不是somedomain.com request.getServerName()为我提供了somedomain.com标题中的“主机”参数也是somedomain.com 这看起来很相似,但恰恰相反: 但是我不能打开“ProxyPreserveHos

我有以下(简化)设置。

从客户端我调用
http://somedomain.com/my.jsp
通过代理将其转发到apache 1或apache 2

在我的jsp中,我想要
server1 domain.com
server2 domain.com
而不是
somedomain.com

request.getServerName()
为我提供了
somedomain.com
标题中的“主机”参数也是
somedomain.com

这看起来很相似,但恰恰相反:

但是我不能打开“ProxyPreserveHost”,因为我不是集群中唯一的一个。。。最佳解决方案是不必对domaincontroller/loadbalancer/apaches进行任何更改

我可以通过JSP方法/param获得它吗?

我最终使用了以下方法:


String hostname=InetAddress.getLocalHost().getHostName()

您是否尝试过X-Forwarded-For或X-Forwarded-Host等X-Forwarded标头?请看一看,没有X-Forwarded标头。。我现在要试试这个:
String hostname=InetAddress.getLocalHost().getHostName()。在spring控制器中看起来很有希望(在本地测试)。我仍然在集群开发环境上构建和部署。@andrucz您链接到了我在问题中提到的同一个问题…:-)我的错。我没有完全阅读你的问题:)