1.运行环境要求
nginx安装成功,Redis安装成功。
tomcat服务分为两个,分别是:
名称 | IP | 端口 |
tomcat1 | 172.16.21.92 | 8080 |
tomcat2 | 172.16.21.92 | 8081 |
2.下载相关jar包
jedis-2.5.2:http://central.maven.org/maven2/redis/clients/jedis/2.5.2/jedis-2.5.2.jar
commons-pool2-2.0:http://central.maven.org/maven2/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar
tomcat-redis-session-manager:http://download.youkuaiyun.com/detail/mlc1218559742/9682304
下载这三个jar包,分别放到两个tomcat的lib目录中。
3.修改context.xml
将两个tomcat的context.xml配置分别修改为如下图所示;
添加内容为:
- <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
- <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
- host="172.16.21.92"
- port="7003"
- database="0"
- maxInactiveInterval="60" />
host:redis的IP地址。
port:redis的端口号。
database:默认为0,这里用不到,暂时不用管。
maxinactiveinterval :最大不活动时间,默认为60
4.修改nginx.conf
配置修改如下:
途中红框中的配置表示当一台server宕机,切换速度会很快,此时配置是1秒。
nginx采用轮询的方式访问两台服务器。
5.编写测试页面
首先得有登录页面,登录成功进入测试页面,验证session是否共享。
下面是tomcat1服务器测试页面代码:
- <body>
- <h2>这是Tomcat1</h2>
- <h2>session id : ${pageContext.session.id}</h2>
- <h2>session time : ${pageContext.session.creationTime}</h2>
- </body>
tomcat2测试页面代码:
- <body>
- <h2>这是Tomcat2</h2>
- <h2>session id : ${pageContext.session.id}</h2>
- <h2>session time : ${pageContext.session.creationTime}</h2>
- </body>
6.验证结果
第一次登录,进入测试页面,发现客户端请求被nginx转发到了tomcat1服务器中,打印出sessionid和session创建时间的信息,如下图所示:
刷新页面,客户端的请求发送的请求别nginx转发到了转发到了tomcat2服务器中,但是打印出来session的信息和tomcat1服务器中session信息一模一样。
通过上面的验证,Nginx+Redis+Tomcat session共享已经成功实现。
转载:http://blog.youkuaiyun.com/mlc1218559742/article/details/53158613