nginx+tomcat集群+redis(memcache)session共享!
阿新 • • 發佈:2018-03-09
coo 1.7 memcache 會話 tomcat7 -- pre 創建 local
常用保持session的方式:
1、一些代理(比如nginxIP_hash)
1、使用數據庫來存儲Session
2、使用Cookie來存儲Session
3、使用Redis來存儲Sesssion(memcache也可以)
……
環境:
192.168.1.220 nginx centos6.6 端口:80 版本:1.9.2 192.168.1.224 tomcatA centos6.6 端口:8080 192.168.1.225 tomcatB centos6.6 端口:8090 版本:Jdk:1.7.0_75 Tomcat:7.0.54 192.168.1.223 redis 3.0.5 |
配置session保持並測試:
1234567891011121314 | nginx.conf配置: upstream www.tomcatcluster.com { zone myapp1 64k; server 192.168.1.224:8080 weight=1 max_fails=2fail_timeout=30s; server 192.168.1.218:8090 weight=1 max_fails=2fail_timeout=30s; } server { listen 80 default; server_name www.tomcat.com; location / { proxy_pass http: //www .tomcatcluster.com; } } |
TomcatA:TomcatB
會話保持:
編輯tomcat配置文件context.xml(TomcatA和TomcatB均操作)
1234567891011 | <Context> <Valve className= "com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <ManagerclassName= "com.orangefunction.tomcat.redissessions.RedisSessionManager" host= "192.168.1.223" <!-- Redis地址 --> port= "6379" <!-- Redis端口 --> paassword= "tomcat" <!-- Redis密碼 --> database= "0" <!-- 存儲Session的Redis庫編號 --> maxInactiveInterval= "60" <!-- Session失效的間隔(秒) --> /> < /Context > mv commons-pool2-2.2.jar jedis-2.7.2.jar tomcat-redis-session-manage-tomcat7.jar /usr/local/tomcat-7 .0.54 /lib/ |
如何測試session會話保持?
可以看到雖然Server從TomcatA變為TomcatB,但session的創建時間沒有變化,這就完成了session共享。
nginx+tomcat集群+redis(memcache)session共享!