我有这个复杂的Java应用程序,它位于反向代理之后。
在致电request.getServerName(),request.getServerPort()和朋友时,在java应用程序级别确定面向用户的网址的最佳做法是什么?
我们在Apache mod_proxy后面使用Tomcat(但我们可能会切换到嵌入式jetty)(但我们肯定会切换到Amazon Elastic Load Balancer)。 我列出了4个解决方案:
Host
HTTP标头ServletRequest
API。而是在配置文件中拥有服务器的完全限定名称,并从我们的代码中读取此配置。我们目前的解决方案:
我肯定需要停止使用方法1,我想解决其他三个主张之一。
修改 这可以概括为:
request.getServerName()
吗?Host
HTTP标头吗?答案 0 :(得分:1)
如果您将Tomcat配置为从请求中保留HOST,即使用指令,则可以信任Tomcat上mod_proxy传递的HOST头:
ProxyPreserveHost On