nginx代理tomcat的时候,tomcat获取的客户端不是客户端传过来的ip,出现这种情况的原因很明显,nginx作为代理服务器先拦截客户端发来的请求,它再以localhost的身份转发给tomcat去处理。解决办法在nginx配置中的location节点中加入以下:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
java可以这样获取远程ip
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
来自个人博客 :
http://www.rguess.com/blog/article/48.html 求关注
OK!
分享到:
相关推荐
windows下配置nginx反向代理tomcat,从下载地址开始讲起,第二步讲常用命令 第三步讲了一个实例,第四步是配置说明
Docker-Compose部署nginx代理Tomcat集群,实现负载均衡!
nginx1.6的安装 tomcat7的安装(包括jdk7) nginx+tomcat反向代理配置
Nginx+Tomcat实现反向代理的案例,里面包括了https的配置,和普通配置。希望能给需要的人带来帮助,启动Tomcat,然后启动呢Nginx就可以直接做测试。100%成功。
Nginx+tomcat+redis软负载均衡需要的一整套资源,还包括了JDK,依赖包等文件
linux下Nginx+tomcat整合的安装与配置
Nginx+tomcat配置集群负载均衡实现动静分离实例
这个是pdf文档,讲授nginx和tomcat整合的方法!
Nginx+Tomcat负载均衡解决方案,当前信息系统的应用范围越来越广泛,我们的信息系统从开始的只需向少量用户提供服务,到现在越来越频繁的需要应对大量用户同时在线,系统高并发的情况也越来越常见,并且对系统的稳定...
NULL 博文链接:https://bert82503.iteye.com/blog/2152613
2. 利用nginx的基于访问ip的hash路由策略,保证访问的ip始终被路由到同一个tomcat上,这个配置更简单。但是我们的应用很可能是某一个局域网大量用户同时登录,这样负载均衡就没什么作用了。 3. 利用memcached把多个...
nginx_tomcat8_redis负载均衡demo
nginx windows tomcat8负载均衡
获取客户端真实IP(支持代理服务器)
自己做的一个nginx+tomcat+redis完成session共享小例子,包括所需jar,适合初学者,希望大家一起学习交流
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
解决配置Nginx反向代理后,可以通过域名访问Linux下部署的Tomcat,但却访问不到部署的项目问题
nginx+tomcat集群配置文件
Nginx和tomcat上传文件大小限制修改,Ngnix和tomcat默认对上传文件大小有限制。
详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...