我目前有一个巨大的问题.两天前,我的网站在一台服务器上运行的太多了,所以我再购买了两台,并将它们集群(rsync和负载平衡).
然后我开始注意到一个用户会打到服务器1,然后在下一个请求命中server3,但是他们的会话仍然在server1而不是server3,并且他们不再登录.
我建议使用会话商店的memcache.
我的脚本已经使用$_SESSION.
>我们可以安装memcache并启用会话处理程序支持,并设置session.save_handler =“memcache”来强制php使用memcache?
>是否有任何应用程序编程需要完成使用memcache?
>这会解决我的服务器问题之间的会话吗?
>会话存储在创建时存储在所有服务器上,还是像主内存缓存服务器那样存储?
我正在使用codeiginiter框架
您将需要设置内存缓存以在其中一台服务器上运行,并使所有服务器对会话使用相同的memcache实例.否则,如果他们每个运行自己的memcache实例,你将有与以前相同的问题.
除了相应地配置memcache,并告诉PHP将其用作会话处理程序,您不必对代码进行任何更改.
〜
为了澄清我在这里给出的建议,如果将所有三个服务器组合到一个池中,只要每个PHP实例以相同的顺序引用这些服务器,就不会有任何问题. memcache使用client side hashing,所以您将保证在相同的服务器上读/写相同的密钥.当然,如果您以任何方式更改该列表,则会话将无效.
memcache开发人员实际上甚至不建议您使用memcache存储会话数据,因为它不是持久的,因此如果您必须重新启动内存缓存(或发生某些事情),则所有用户都将被注销.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。