打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux-tomcat+nginx+redis:分布式session共享(redis配置说明)

在tomcat+nginx分布式环境下,如果有一台服务器挂掉,那个它上面的session则会消失(session是保存在服务器上面),那么我们怎么解决这个问题?我们可以把信息保存在cookie中(cookie是保存在客户端,也就是游览器),但是,这样是不安全的,下面我要介绍的是用redis保存session信息,而达到session共享(我也是刚看别人的博客,搭建出来,有些注意的地方要知道)。

1、需要3个jar包,分别是commons-pool2-2.3.jar,jedis-2.7.2.jar,tomcat-redis-session-manager1.2.jar(这个jar包我是直接下载的,没去原版的github拉取。),将3个jar包放在每台服务器tomcat的lib当中。

2、配置tomcat的context.xml文件,将redis链接配置(以及使用tomcat-redis-session-manager1.2.jar进行session的存储共享)到当中,如下:

<!-- 利用redis 进行session 共享 单例模式 只有一台redis -->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="3600"/>
 

<!-- redis-Sentinel 配置 多例模式  -->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
    maxInactiveInterval="60"
    sentinelMaster="mymaster"
    sentinels="127.0.0.1:26379,127.0.0.1:26479" />

我们这里使用单例模式,redis集群,在接下来几篇会有

        注意:一定要反编译你拿到的tomcat-redis-session-manager1.2.jar包,看看RedisSessionHandlerValve.class、RedisSessionManager.class的路径(之前直接复制网上的配置,发现找不到类,然后反编译jar包找到对应的位置),如果你的redis有密码,则在manager下面加入
password="????",如果没有密码,不要加入这段!。

3、nginx的配置

这个其实不需要的和redis没关联,只是测试的时候,为了看出效果如下:

upstream localhost {
                server localhost:8090 weight=1;
        server localhost:8080 weight=1;
       #ip_hash;
    }
注意上面的ip_hash,它的作用是如果用户在服务器1进行登录,
之后的所有操作都会在服务器1上进行,

如果没有它,那么,用户的所有操作都将是交给nginx进行分配的,现在我们这里把它注释掉,测试

的时候登录之后进行操作,各个服务器将是共享的,可能在1,可能在n,那么session也是共享的,

然后,将其中一台服务器停掉,继续操作,结果当然是在其他服务器上执行,现在,我们将ip_hash

加上,继续之前的操作,从头再来,结果。。。。。你懂的。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
面试题:你都知道哪些分布式Session实现方案?
Nginx+Tomcat+Redis负载均衡实现session共享
Nginx+tomcat集群并实现session共享(广播机制、redis两种方式)
CentOS6.5下Tomcat7 Nginx Redis配置步骤
nginx-tomcat负载均衡redis-session共享,静态资源分离
负载均衡session共享的三种处理方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服