会话ID定期更改(nginx / tomcat / mamcached / MSM)

时间:2014-04-11 19:18:11

标签: jsp session tomcat nginx memcached

我在处理服务器组时遇到了问题:

  • 1 - linux_01.xx - > nginx(proxy_pass)
  • 2 - linux_02.xx - > tomcat01(8081)/ tomcat02(8082)/ memcached
  • 2 - linux_03.xx - > tomcat01(8081)/ tomcat02(8082)

4只雄猫使用MSM(非粘性模式)​​来分享会话。

在这些格式中,只有一个简单的webapp, index.jsp 在“body”节点中只有一行:

<%= session.getId()%>


现在我可以看到页面:
        的 http://linux_01.xx/s/index.jsp

我只是点击超链接继续重新加载页面。每次我都可以看到nginx转发请求(我添加了一些配置用于记录):

=============================================== ==

每次网页的内容如下:

  • 92DSAD8248237523875283723843-N1
  • 92DSAD8248237523875283723843-N1
  • 92DSAD8248237523875283723843-N1
  • 92DSAD8248237523875283723843-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1

为什么会话ID会定期更改? 应该保持不变......

但如果我们只有linux_02或linux_03,它就不会改变。如果那些tomcats来自linux_02和linux_03,它总是会改变。

有人会帮助我吗?我花了很多时间在这上面......非常感谢。

2 个答案:

答案 0 :(得分:0)

我偶然发现了一个关于与Tomcat并行部署的教程,同时研究了类似的问题。请查看标题"With Session Established"下的部分,并告诉我这是否有助于指导您在多个服务器上管理会话的正确方向。

答案 1 :(得分:0)

原因是这些服务器之间的时间(时钟)不一致,差距超过1天。

我通过设置NTPD和NTP客户端来解决这个问题,以确保这些服务器的时间相同。