问题描述
我需要在应用程序服务器中获取Web服务器的IP。 我们的应用程序结构如下:
我们有2个负载均衡器,在每个负载均衡器下,我们每个都有3个Web服务器,在这6个Webserver下,我们有3个应用服务器。
现在来自:
request.getRemoteAddr(); // This gives me the client IP
InetAddress.getLocalHost(); // This gives me my application server IP
request.getHeader("X-FORWARDED-FOR"); // and this gives me null value
我也想获取我的Web服务器IP,以检查我从哪个Web服务器获取请求。 有人可以帮我怎么做吗。
1楼
ServletRequest
知道getServerName()
和getServerPort()
:
返回请求发送到的服务器的主机名。 它是主机头值(如果有)或“解析的服务器名称”或服务器IP地址中“:”之前的部分的值。
此外,它具有getLocalAddr()
(以及getLocalPort()
和getLocalName()
)
返回在其上接收到请求的接口的Internet协议(IP)地址。
在应用程序服务器上使用时, getLocalAddr()
将为您提供应用程序服务器的IP,但是您可以尝试getServerName()
返回Web服务器地址。