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" />

总结

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

相关文章

  • IDEA2022创建Web项目配置Tomcat的详细图文说明

    IDEA2022创建Web项目配置Tomcat的详细图文说明

    因为学习JavaEE需要配置Tomcat,所以抽出时间对IDEA进行配置与创建,下面这篇文章主要给大家介绍了关于IDEA2022创建Web项目配置Tomcat的详细图文说明,需要的朋友可以参考下
    2023-04-04
  • Tomcat配置IPV6的实现步骤

    Tomcat配置IPV6的实现步骤

    本文主要介绍了Tomcat配置IPV6的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 记一次tomcat进程cpu占用过高的问题排查记录

    记一次tomcat进程cpu占用过高的问题排查记录

    这篇文章主要介绍了记一次tomcat进程cpu占用过高的问题排查记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • IntelliJ IDEA Tomcat配置详解(图文)

    IntelliJ IDEA Tomcat配置详解(图文)

    这篇文章主要介绍了IntelliJ IDEA Tomcat配置详解(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • idea专业版和idea社区版整合Tomcat并将war包部署

    idea专业版和idea社区版整合Tomcat并将war包部署

    IDEA是一个功能完善的Java开发工具,除了具备有良好的代码开发提示之外,还可以直接在IDEA中集成并启动Tomcat实现程序的自动部署,本文主要介绍了idea专业版和idea社区版整合Tomcat并将war包部署,感兴趣的可以了解一下
    2023-11-11
  • Tomcat日志文件定时清理备份的脚本

    Tomcat日志文件定时清理备份的脚本

    这篇文章主要介绍了Tomcat日志文件定时清理备份的脚本的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • Tomcat 多站点配置详解及实现方法

    Tomcat 多站点配置详解及实现方法

    这篇文章主要介绍了Tomcat 多站点配置详解及实现方法的相关资料,需要的朋友可以参考下
    2016-12-12
  • Tomcat服务器入门超详细教程

    Tomcat服务器入门超详细教程

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,这篇文章主要介绍了Tomcat服务器入门超详细教程,需要的朋友可以参考下
    2021-11-11
  • 非常实用的Tomcat启动脚本实现方法

    非常实用的Tomcat启动脚本实现方法

    这篇文章主要给大家介绍了关于非常实用的Tomcat启动脚本的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Tomcat具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Tomcat之web应用的目录组成结构_动力节点Java学院整理

    Tomcat之web应用的目录组成结构_动力节点Java学院整理

    这篇文章主要介绍了Tomcat之web应用的目录组成结构,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论