多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
使用redis共享tomcat多节点session,需要安装redis、nginx、tomcat6以及用于tomcat存储session到redis的jar包:tomcat-redis-session-manager-1.2-tomcat-6.jar、 commons-pool-1.6.jar、jedis-2.1.0.jar等。这些jar包、配置文件及demo程序可以在最后的demo地址中下载。 下面是对tomcat、nginx进行配置及运行: ### 1.把demo包中的jar包拷贝到tomcat的lib目录中: ### 2.配置tomcat的context.xml文件: ~~~ <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>; <Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="localhost" port="6379" database="0" maxInactiveInterval="60"/>; ~~~ ### 3.配置tomcat的server.xml: ~~~ 对于不同的tomcat,以下几个port配置成不同的值如: tomcat1: <Server port="8007" shutdown="SHUTDOWN"> <Connector port="18080" protocol="org.apache.coyote.http11.Http11Protocol" connectionTimeout="20000" redirectPort="8444" /> <Connector port="8019" protocol="AJP/1.3" redirectPort="8444" /> <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> tomcat2: <Server port="8008" shutdown="SHUTDOWN"> <Connector port="18081" protocol="org.apache.coyote.http11.Http11Protocol" connectionTimeout="20000" redirectPort="8445" /> <Connector port="8029" protocol="AJP/1.3" redirectPort="8445" /> <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2"> ~~~ ### 4.配置nginx集群: ~~~ 对nginx.conf进行配置: upstream tomcat { server 127.0.0.1:18080; server 127.0.0.1:18081; } server { listen 8080; server_name 127.0.0.1; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_buffers 32 4k; proxy_connect_timeout 3; proxy_send_timeout 30; proxy_read_timeout 30; proxy_pass http://tomcat; } } ~~~ ### 5.把demo.war程序放入到tomcatde webapps中: 修改demo中的index.jsp中的内容,不同的tomcat中,内容不一样。如下: ~~~ tomcat1中的demo: tomcat1:<%=session.getId() %> tomcat2中的demo: tomcat2:<%=session.getId() %> ~~~ ### 6.启动nginx,redis、tomcat1、tomcat2: 打开浏览器,输入地址:http://localhost:8081/demo ### 7.按F5刷新页面: 我们可以看到页面,不管我们怎么刷新,只有前面的tomcat的标识发生变化,而后面的sessionID是固定的如下: ~~~ tomcat1:8EA77B42358EFC1CD1F5FBC7246A1317.tomcat1 tomcat2:8EA77B42358EFC1CD1F5FBC7246A1317.tomcat1 ~~~ 如果出现以上的结果说明共享session成功了,如果大家在尝试过程中出现什么问题,可以给我留言。 ### 8.demo下载地址: [使用redis在nginx负载下tomcat6多节点共享session  ](http://download.csdn.net/detail/mr_smile2014/9364603)