tomcat-session-redis配置
Session持久机制三种实现方法:
1、session绑定:始终将来自同一个源IP的请求定向至同一个RS;没有容错能力;有损均衡效果(sh)
2、session复制:在RS之间同步session,每个RS拥有集群中的所有的session;对规模集群不适用;必须RS支持(lblcr)
3、session服务器:利用单独部署的服务器来统一管理集群中的session;(单有单点故障)
nginx-tomcat-redis(session共享)配置实例:
环境:两台机器:
10.15.51.141:tomcatA
10.15.51.222:tomcatB、nginx、redis
步骤:
1. 所需要的包,放入到tomcat目录的lib目录下(附件中)
commons-pool-1.6.jar
jedis-2.1.0.jar
tomcat-redis-session-manager-1.2-tomcat-7.jar
2. 配置tomcat目录下的conf/context.xml,加入以下内容:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /> <Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="10.15.51.222" #redis地址 port="6379" #redis端口 database="0" maxInactiveInterval="60"/> #session失效时间(秒)
3. nginx配置:
http{ upstream aaa { server 10.15.51.222:8080; server 10.15.51.141:8080; } server { server_name aaa.test.com; listen 80; location { access_log logs/ning_access.txt; proxy_pass http://aaa; } } }
4、在两台tomcat中添加以下内容方便测试
A提供测试:
# mkdir -pv test/WEB-INF/{classes,lib} # vim test/index.jsp <%@ page language="java" %> <html> <head><title>TomcatA</title></head> <body> <h1><font color="blue">Tomcata.10.15.51.222.com</font></h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("ning.com","ning.com"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
B提供测试:
# mkdir -pv test/WEB-INF/{classes,lib} # vim test/index.jsp <%@ page language="java" %> <html> <head><title>TomcatB</title></head> <body> <h1><font color="blue">TomcatB.10.15.51.141.com</font></h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("ning.com","ning.com"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
访问:
http://IP:80/test 或http://IP/test
时间: 2024-10-04 11:29:25