nginx 解决session共享

回复 收藏
本帖最后由 乐橙306 于 2016-7-6 14:48 编辑
  1. 参考文档
  2. http://blog.csdn.net/honghailiang888/article/details/51066411
  3. nginx 解决session共享问题(jvm-route)方式(其实不是真正实现共享,而是分发固定)
  4. 1.下载安装jvm_route
  5. 查看附件
  6. cd /usr/src/nginx-1.2.1
  7. patch - p0  < /usr/local/nginx/nginx_upstream-jvm-route-read-only/jvm_route.patch
  8. ./configure --add-module=/usr/local/nginx/nginx-upstream-jvm-route-read-only
  9. make & make install
  10. 2.nginx 设置:
  11. ###################sundong.lol###################
  12. upstream sundong.lol {
  13.         server 192.168.18.84:8804 srun_id=GC1 max_fails=1 fail_timeout=30s;
  14.         server 192.168.18.120:8804 srun_id=GC2 max_fails=1 fail_timeout=30s;
  15.         jvm_route $cookie_JSESSIONID|sessionid reverse;
  16. 3.tomcat 设置:
  17. 192.168.18.84设置:
  18. 修改tomcat/conf/server.xml
  19.    
  20. 192.168.18.120设置:
  21. 修改tomcat/conf/server.xml
  22.    
  23. 192.168.18.84 和120 新增 puic.cache.xml
  24.                 cache_1192.168.18.130:11211
  25.                         192.168.18.131:11211530001500
  26. 4.配置完成
  27. 这个模块通过session cookie的方式来获取session粘性。如果在cookie和url中并没有session,则这只是个简单的round-robin 负载均衡。
  28. jvm_route的原理(from 作者 Weibin Yao):
  29. 1. 一开始请求过来,没有带session信息,jvm_route就根据round robin的方法,发到一台tomcat上面。
  30. 2. tomcat添加上session 信息,并返回给客户。
  31. 3. 用户再此请求,jvm_route看到session中有后端服务器的名称,它就把请求转到对应的服务器上。
  32. 暂时jvm_route模块还不支持默认fair的模式。jvm_route的工作模式和fair是冲突的。对于某个特定用户,当一直为他服务的 tomcat宕机后,默认情况下它会重试max_fails的次数,如果还是失败,就重新启用round robin的方式,而这种情况下就会导致用户的session丢失。
  33. 总的说来,jvm_route是通过session_cookie这种方式来实现session粘性,将特定会话附属到特定tomcat上,从而解决session不同步问题,但无法解决宕机后会话转移问题。

2016-07-05 17:11 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: