Tomcat获取Nginx反向代理的客户端域名

 更新时间:2018年12月12日 09:46:37   作者:灰灰是菇凉呀  
今天小编就为大家分享一篇关于Tomcat获取Nginx反向代理的客户端域名,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

问题

Nginx反向代理之后,Tomcat应用通过request.getHeader("host")取到的是Nginx的host,并非客户端浏览器地址栏上的真实域名。

例如在某一台服务器上,Tomcat的端口号为8080,Nginx的端口号为80,Nginx反向代理8080端口。

server {
  listen 80;
  location / {
    proxy_pass http://127.0.0.1:8080;
  }
}

在另一台机器上用浏览器打开http://haha/test访问Tomcat下的应用,获取客户端域名。

System.out.println(request.getHeader("host"));

结果是:

localhost:8080

问题产生的原因

Nginx的反向代理实际上是客户端和真是的应用服务器之间的一个桥梁,客户端(一般是浏览器)访问Nginx服务器,Nginx再去访问Web应用服务器。对于Web应用来说,这次HTTP请求的客户端是Nginx而非真实的客户端浏览器,如果不做特殊处理的话,Web应用会把Nginx当做请求的客户端,获取到的客户端信息就是Nginx的一些信息。

问题解决

Nginx配置HTTP Header。Host包含客户端真实的域名和端口号

proxy_set_header Host $http_host;

Tomcat从Nginx传递过来的HTTP Header中获取客户端信息。

<Valve className="org.apache.catalina.valves.RemoteIpValve" />

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • tomcat异常解决(Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986)

    tomcat异常解决(Invalid character found in the request target. Th

    这篇文章主要介绍了tomcat 异常的解决方案,帮助大家排查错误,保持服务器的稳定,感兴趣的朋友可以了解下
    2020-10-10
  • Tomcat 检测内存泄漏实例详解

    Tomcat 检测内存泄漏实例详解

    这篇文章主要介绍了 Tomcat 检测内存泄漏实例详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • Tomcat 与 maven 的安装与使用教程

    Tomcat 与 maven 的安装与使用教程

    这篇文章主要介绍了Tomcat 与 maven 的安装与使用,Tomcat HTTP 服务器,按照 HTTP 协议的格式来解析请求,调用用户指定的相关代码,并且按照 HTTP 响应的格式来构造返回数据,需要的朋友可以参考下
    2022-06-06
  • Tomcat容器管理安全的验证方式汇总

    Tomcat容器管理安全的验证方式汇总

    当访问服务器中受保护的资源时,容器管理的验证方法可以控制确认用户身份的方式。Tomcat支持四种容器管理的安全防护。下面小编给大家分享Tomcat容器管理安全的验证方式汇总,感兴趣的朋友一起看看吧
    2016-11-11
  • 基于centos自己构建一个tomcat镜像的实现

    基于centos自己构建一个tomcat镜像的实现

    本文主要介绍了基于centos自己构建一个tomcat镜像的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Apache Tomcat服务部署网站的项目实践

    Apache Tomcat服务部署网站的项目实践

    本文主要介绍了Apache Tomcat服务部署网站的项目实践,包括下载和安装Tomcat,设置环境变量,配置server.xml文件,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 详解Tomcat集群如何同步会话

    详解Tomcat集群如何同步会话

    本篇文章主要介绍了Tomcat集群如何同步会话,Tocmat集群中最重要的交换信息就是会话消息,有兴趣的同学可以了解一下。
    2017-01-01
  • 修改Tomcat服务中的端口配置方法

    修改Tomcat服务中的端口配置方法

    今天小编就为大家分享一篇修改Tomcat服务中的端口配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 教你如何通过JConsoler监控Tomcat的JVM内存

    教你如何通过JConsoler监控Tomcat的JVM内存

    这篇文章主要介绍了教你如何通过JConsoler监控Tomcat的JVM内存,主要通过jmx 对java进行监控的方法,tomcat故障案例解析,本文给大家介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Win10配置tomcat环境变量教程图解

    Win10配置tomcat环境变量教程图解

    这篇文章主要介绍了Win10配置tomcat环境变量教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论