2010-07-17 40 views
1

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

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

我不想单点故障。

回答

2

使用文件以外的其他内容进行会话管理。 PHP允许你覆盖处理程序。我使用memcache。有一个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/

UPDATE

要从意见解决问题:

这允许您使用用于会话的中央memcache机器集。而不是每个服务器都在本地查看其文件系统,它将查找您定义的中央memcache群集。

为了避免单点故障,memcache群集可以是任意多台机器。下面是一个例子,从CONFIG的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执着= 1个&重量= 1个&超时= 1 & retry_interval的= 15”

+0

我使用的memcache所有时间,我的问题是 - 同一个系统会有很多副本。我如何使会话变得粘稠?所有的云设备都会运行memcache ......明白我的意思吗? – MichaelICE 2010-07-17 02:05:58

+0

@mike,你可以让每台机器引用一个中央memcache机器。 – 2010-07-17 02:16:08

+0

我真正想要做的就是在所有实例上使用MemcacheD,并找出一种方法来确保它可以使用某种粘滞位获取其会话标识。 – MichaelICE 2010-07-17 02:26:38