您的位置:首页 > 数据库 > Redis

nginx+tomcat+redis 负载均衡和session共享

2016-11-02 19:43 351 查看
因项目需要,在centos虚拟机中配置部署了2台tomcat机器并设置了session共享,在此记录下来,方便以后查看。有什么不对的地方,欢迎同行指正,哈哈。

一:tomcat配置

1.修改tomcat的conf目录的context.xml

在标签里加入以下代码

注意: className中配置的类必须和tomcat-redis-session的那个jar包对应,不然启动的时候会报错,比如启动不了啊,类找不到啊等

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6388"
database="0"
password="gxb_redis"
maxInactiveInterval="60" />


2.将以下四个包放到tomcat的lib目录下



tomcat 配置完毕以后重新启动

二:nginx配置

把关键代码贴出来,需要完整的请留言邮箱

#设定负载均衡的服务器列表  mysvr 表示负载均衡器的名称
upstream mysvr{
server 127.0.0.1:8081 weight=2 max_fails=1 fail_timeout=10s;
server 127.0.0.1:8082 weight=4 max_fails=1 fail_timeout=10s;
}

location / {
root   html;    #定义服务器的默认网站根目录位置
index  index.html index.htm;

#请求转向mysvr 定义的服务器列表
proxy_pass  http://mysvr ;
}


三:redis

redis不用再做额外的配置,只需安装启动即可

四:验证是否成功

1.第一种方式:如果配置成功,可以在redis中看到session的key-value

127.0.0.1:6388> keys *
1) "5EA927E533814132697BD28A4C934233"
127.0.0.1:6388> get 5EA927E533814132697BD28A4C934233
"\xac\xed\x00\x05sr\x00Dcom.orangefunction.tomcat.redissessions.SessionSerializationMetadataB\xd9\xd9\xf7v\xa2\xdbL\x03\x00\x01[\x00\x15sessionAttributesHasht\x00\x02[Bxpw\x14\x00\x00\x00\x10\x1c\x1f\xd4\xa1k\x1aq\xd3u\xfbe\xbffJ\x8c\xabxsr\x00\x0ejava.lang.Long;\x8b\xe4\x90\xcc\x8f#\xdf\x02\x00\x01J\x00\x05valuexr\x00\x10java.lang.Number\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00xp\x00\x00\x01X$\xaa\x1d\xf2sq\x00~\x00\x03\x00\x00\x01X$\xaa\x1d\xf2sr\x00\x11java.lang.Integer\x12\xe2\xa0\xa4\xf7\x81\x878\x02\x00\x01I\x00\x05valuexq\x00~\x00\x04\x00\x00\a\bsr\x00\x11java.lang.Boolean\xcd r\x80\xd5\x9c\xfa\xee\x02\x00\x01Z\x00\x05valuexp\x01q\x00~\x00\nsq\x00~\x00\x03\x00\x00\x01X$\xaa\x1d\xf2t\x00 5EA927E533814132697BD28A4C934233sq\x00~\x00\a\x00\x00\x00\x00w\b\x00\x00\x01X$\xaa\x1d\xf2"


2。第二种方式:直接在页面输出sessionId即可

比如我的index.jsp首页,tomcat8081对应的这个首页内容

<h1>欢迎来到jfinal</h1><br/>
项目路径 ====<%=basePath %><br/>
<%=session.getId() %>


tomcat8082 对应另一个首页内容

<h1>欢迎来到jfinal2</h1><br/>
项目路径 ====<%=basePath %><br/>
<%=session.getId() %>


浏览器访问如下图(跳转到了不同的首页,但是sessionId一致):





大功告成。。。。。。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat redis nginx session