1

如果我正在运行两个以上的服务器实例(使用 rackspace-cloud 的 ip 组),我如何使用 PHP 管理我的会话?

有没有办法让用户“粘”到他们最初登录的服务器?我确实使用了 memcached,但是所有的云系统都有 memcached,我需要确保用户会话到达正确的服务器。

我不希望出现单点故障。

4

1 回答 1

2

使用文件以外的东西进行会话管理。PHP 允许您覆盖处理程序。我使用内存缓存。它还有一个 PECL 扩展:http: //www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/

这是关于它的另一篇文章:http ://www.ducea.com/2009/06/02/php-sessions-in-memcached/

更新

要解决评论中的问题:

这允许您使用一组中央 memcache 机器进行会话。不是每台服务器都在本地查看其文件系统,而是查看您定义的中央 memcache 集群。

memcache 集群可以是任意数量的机器,以避免单点故障。这是来自 php.ini 的示例配置:

扩展=memcache.so memcache.allow_failover = 1 memcache.redundancy = 1 memcache.session_redundancy = 2;使用 memcache 作为会话处理程序 session.save_handler = memcache ; 使用逗号分隔的服务器 url 列表用于存储: session.save_path="udp://:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

于 2010-07-17T01:47:29.617 回答