java - 如何从 Struts2/Servlet 中的 Apache Web 服务器获取客户端 IP 地址?

标签 java apache tomcat servlets struts2

<分区>

我正在尝试在 Struts2 中获取客户端 IP 地址。请求通过 Apache Web 服务器路由到 Tomcat 服务器,两个服务器位于同一台物理服务器上。客户端和 Apache 之间的连接是安全的,但 Apache 和 Tomcat 之间的连接不安全。当我尝试获取客户端 IP 地址时,我总是得到 127.0.0.1。我如何从 Apache Web 服务器获取 Struts2/Servlet 中的客户端 IP 地址?

提前致谢!

最佳答案

servlet 中客户端的 IP 地址你可以这样得到 -

HttpServletRequest httpServletRequest = (HttpServletRequest) request;

// Proxy
String userIpAddress = httpServletRequest.getHeader("X-Forwarded-For");

if(userIpAddress == null) {
   userIpAddress = request.getRemoteAddr();
}

关于java - 如何从 Struts2/Servlet 中的 Apache Web 服务器获取客户端 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806403/

相关文章:

tomcat - Apache Tomcat服务器可以默认运行PHP文件吗?

java - 如何使用@OneToMany 集合进行分页

php - htaccess mod_rewrite 部分 url 到 GET 变量

tomcat - UrlRewriteFilter 相当于 mod_rewrite

java - 通过intellij部署到azure tomcat实例

使用 openssl 函数时 Apache 服务器 (xampp) 崩溃

java - 如何处理使用 Selenium Webdriver 的提示警报

java - 无法锁定 Java 编译缓存,因为它已被此进程锁定

java - 为什么swt(Labels)组件的对齐方式被破坏了?

apache - Docker 消息:由于服务器/代理的响应不正确,自动禁用 Acquire::http::Pipeline-Depth