我现在花了很多时间来解决这个问题。这个问题几乎与此处列出的问题相同:
Inconsistent session serialization across servers
我有两个相同的服务器。它们都提供使用ADOdb进行会话处理的应用程序。用户经常在两台服务器之间切换。几天前,我注意到我不断被要求一次又一次登录。我发现在其中一个服务器上,会话数据存储在数据库中,如下所示:
h_3gslcPnE2PgRMXlGz3WwIMO8T5dl2QkkZ-Rpuu0P8pz8XxKmgp9y4nwuqlS9uHakcyOZ0IFwny7a7Ahllj0LSrAmvcIKnHBbdxFx2CNpi0xLKHkplFdUuIcMhVdr15uSWWdGddbKBroc0mcnUmqbuyY9q2JCxRJVtUzyBgCr_5G.......
在另一台服务器上,如下:
agent_check%7Cs%3A4%3A%22true%22%3Bselected_language%7Cs%3A2%3A%22it%22%3BPP_visitor_country%7Ca%3A4%3A%7Bs%3A7%3A%22IP_FROM%22%3Bs%3A10%3A%221094102784%22%3Bs%3A5%3A%22IP_TO%22%3Bs%3A10%3A%221094147904%22%3Bs%3A12%3A%22COUNTRY_CODE%22%3Bs%3A2%3A%22US%22%3Bs%3A11%3A%22countryLONG%22%3Bs%3A13%3A%22UNITED%20STATES%22%3B%7Dcustomer%7CO%3A8%3A%22customer%22%3A12%3A%7Bs%3A12%3A%22customers_id%22%3Bi%3A0%3Bs%3A16%3A%22customers_status%22%3Bs%3A1%3A%221%22%3Bs%3A13
我已经使用这个冗余的双服务器设置了大概两年了,它总是很完美,根据上面给出的第二个例子存储会话数据。 两台服务器之间的PHP代码完全相同。另外,php.ini在两者之间是相同的。这里给出的建议解决方案Inconsistent session serialization across servers并不适用于我的情况 - 与加密相关的suhosin设置在两个服务器之间是相同的。然而,会话数据以两种不同的方式存储,每个服务器不理解其他表示。我暂时击落了其中一台服务器,所有流量都只是其中一台服务器。 任何想法都将不胜感激。
答案 0 :(得分:0)
在两台服务器上,我将suhosin.session.encrypt设置为On。我在两台服务器上通过phpinfo()检查了这个。一旦我明确地将其设置为Off,事情就会再次开始正常工作。