文档章节

nginx中proxy_pass到tomcat的session丢失

淡看江湖
 淡看江湖
发布于 2016/12/07 10:28
字数 270
阅读 249
收藏 1

        好多事不自己去做确实不知道,随便玩一玩就出了好多问题,虽然都不大,但却都是必须要解决的。今天早上碰见的问题就是nginx中proxy_pass到tomcat的session丢失了。

        之前也没测试过使用nginx反向代理后登陆的情况,结果今天就凑巧了。经调试发现是request请求变成了多个,并且session每次也都不一致,感觉就像是每次都在用不同的浏览器访问,得出结论:肯定是session丢失了!

        显而易见的就是问题肯定出在了nginx上面,因为之前单独使用tomcat都是没有问题的。

        之前的配置如下:

    

     upstream backend {

             #ip_hash;
             server localhost:8080;
    }
    server {
        listen    80;
        server_name  my;
        location / {

             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
             proxy_buffering on;

         
             proxy_pass http://backend/xyan/; 
        }

 

修改后如下:

    

 upstream backend {

             #ip_hash;
             server localhost:8080;
    }
    server {
        listen    80;
        server_name  my;
        location / {

             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
             proxy_buffering on;

         
             proxy_pass http://backend/xyan/; 

            proxy_cookie_path /xyan/ /;
             proxy_set_header   Cookie $http_cookie;  
        }

其实也就是每次都保留cookie。       

© 著作权归作者所有

共有 人打赏支持
淡看江湖
粉丝 35
博文 82
码字总数 92173
作品 0
浦东
后端工程师
私信 提问
nginx转发到两tomcat之后session丢失

使用nginx负载均衡到 两个tomcat之后出现session一直失效的问题。如果只启动一个tomcat的话正常,浏览器查看cookie发现下图的情况,每次请求都会返回一个JSESSIONID过来。有人知道只什么回事...

仁江
2017/04/13
562
2
Linux环境下,nginx proxy_pass tomcat之后,session失效!

生产环境如下: centos 6.5 nginx 1.8 tomcat7 redis3 mysql5.6 在上面跑了一个web应用,使用的是apache的shiro做为登陆及权限验证!用nginx proxy_pass 到tomcat跑java。 nginx配置如下: ...

TommyW
2015/08/30
768
6
急!急!急!nginx+tomcat做负载均衡设置了ip_hash,同一台手机的请求不能转发到相同的tomcat

配置是这样的。为了防止session失效问题,用了ip_hash的方式,但是从tomcat日志来看发现请求还是乱来转发,同一台手机一会转到8080,一会儿转到9090.导致session丢失。现在项目上线,这问题烦...

仁江
2016/08/05
822
9
tomcat8 nginx负载均衡 + 动静资源分离, 利用redis 共享 session

1、基本环境: tomcat-8.0 2台 (端口 8180, 8280) redis-2.8 (port:6379 ) nginx-1.8 2、添加tomcat和redis做session共享的jar包 (在tomcat自己的lib下添加session共享所需的jar包,需要...

steven
2016/07/29
68
0
nginx+tomcat负载均衡session复制问题

我的环境是:nginx+tomcat(2个),tomcat安装到同一台机器上面。 测试项目需要登录用到了session,所以在nginx里面upstream里面用了ip_hash。。 以前测试时,当一个tomcat挂掉时,登录会自动...

2008
2011/07/08
2.1K
7

没有更多内容

加载失败,请刷新页面

加载更多

EOS账户如何工作,我们如何获取eos账号?

EOS账户的工作方式是什么?帐户是存储在区块链中的人类可读名称。它可以由个人或一群人拥有,具体的取决于权限配置。需要一个帐户来将交易转移或推送到区块链。——EOSIO Wiki EOS账户如何工...

笔阁
7分钟前
0
0
iOS面试之@property

https://juejin.im/post/5c105c7ce51d4562d138086f @property介绍 相信做过iOS开发的同学都使用过@property,@property翻译过来是属性。在定义一个类时,常常会有多个@property,有了@proper...

壹峰
9分钟前
0
0
[springBoot系列]--springBoot注解大全

一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加......

Jack088
23分钟前
6
0
tomcat编译超过64k大小的jsp文件报错原因

  今天遇到一个问题,首先是在tomcat中间件上跑的web项目,一个jsp文件,因为代码行数实在是太多了,更新了几个版本之后编译报错了,页面打开都是报500的错误,500的报错,知道http协议返回...

SEOwhywhy
44分钟前
5
0
flutter http 请求客户端

1、pubspec文件管理Flutter应用程序的assets(资源,如图片、package等)。 在pubspec.yaml中,通过网址“https://pub.dartlang.org/packages/http#-installing-tab-”确认版本号后,将http(0...

渣渣曦
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部