Nginx —— 分布式session 之粘性Session实例

        用 Nginx 反向代理多台服务器的时候,会出现 session 不同步的问题,如用户在tomcat1中登录,保存了用户信息进 session 中,但是tomcat2中的 session 中没有该用户信息,如果用户再次发出请求时分配到了 tomcat2 中,就会出现 找不到用户 session信息,重新调整到登录页面的情况,所以,采用粘性session的方式,同一个IP的所有访问请求都指定到同一个 tomcat中,这样就解决了问题。因为一个用户的请求都会发送到同一台服务器

步骤:

        tomcat部分:

        部署两台(或者多台)tomcat,如果是同一台电脑的话可以参考我的另一篇博客:https://blog.csdn.net/DGH2430284817/article/details/90417905

        web项目部分:

        把项目的war包放到每一个 tomcat 的 webapps 目录下,这样在 tomcat 启动的时候,会自动解压部署web项目

        nginx部分:

        修改conf目录下的 nginx.conf 文件:

	upstream tomcatServer{ 
		#同一个ip访问同一个服务器
		ip_hash;
		server 127.0.0.1:8080;
		server 127.0.0.1:8082;
	}
 
    server {
        listen       80;
        server_name  localhost;
 
        location / {
			proxy_pass  http://tomcatServer/;
        }
 
       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
    }

最重要的就是 ip_hash 这个配置,这是nginx自带的,可以实现同一个ip分配到同一个代理服务器

 

最后启动nginx和tomcat就可以了,session的问题就解决了

 

注意:

        在分布式 session 的三种解决方法中,以上这种是最简单的,而且资源消耗也是最小的,但是缺点就是其中一台tomcat 崩溃后,里面的 session 数据就全没了,单点故障危险大。
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值