会话存储在云服务器上的memcached上

时间:2014-12-06 11:59:11

标签: session zend-framework memcached rackspace-cloud

我在两台服务器上的memcache上遇到会话存储问题。我在云服务器上安装了memcached

我有两个服务器“服务器1”和“服务器2”和两个负载均衡器,一个是用于端口443而另一个用于80.我想在两个服务器上的memcache中保持会话,因此如果一个服务器发生故障,服务器2应该显示相同的会话。

我通过以下命令在两台服务器上安装了memcache:

1)rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

2)yum install memcached

3)vi / etc / sysconfig / memcached并添加

PORT =“11211”
   USER =“memcached”
   MAXCONN =“1024”
   CACHESIZE =“264”
   OPTIONS =“ - l 127.0.0.1”//我试着将服务器1的ip放在服务器1的memcache配置文件上,服务器2的ip放在服务器2的memcache配置文件上

4)/etc/init.d/memcached start
5)chkconfig --levels 235 memcached on 6)yum groupinstall“开发工具”
7)yum install zlib-devel libmemcached-devel php-pear php-pecl-memcached php-pecl-memcache
8)pecl install -f memcached-1.0.0

将此memcache.ini和memcahed.ini添加到我的服务器

之后

我打开了memcache.ini并更改了以下设置:

1)memcache.hash_strategy =一致的 2)memcache.session_redundancy = 3
3)memcache.allow_failover = 1

在php.ini中,我改变了

1)session.save_handler = memcache
2)session.save_path = tcp:// server1:11211,tcp:// server2:11211

并重新启动apache服务器

您可以在此处查看所有配置设置:http://www.diehardfans.com/phpinfo.php

现在,当我尝试写/读会话时,它显示错误:

警告:session_write_close()[function.session-write-close]:无法写入会话数据(memcache)。请验证第702行/mnt/cbsvolume1/sporters/library/Zend/Session.php中session.save_path的当前设置是否正确(tcp:// server1:11211,tcp:// server2:11211)

P.S:11211端口在云通道上打开,我们在负载均衡器上使用循环算法。

如果我们有任何错误,请检查并告诉我们。

提前致谢

2 个答案:

答案 0 :(得分:0)

尝试

session.save_path = "tcp://server1:11211,tcp://server2:11211"

而不是

session.save_path = tcp://server1:11211,tcp://server2:11211

答案 1 :(得分:0)

您将无法在IP地址127.0.0.1

上收听内存缓存

如果这样做,只能连接本地服务器的连接。

由于您尝试连接远程服务器,因此您需要让memcache侦听远程计算机可以连接的IP地址。

您没有提到任何IP地址,但是如果我们假设server1的IP为192.168.1.100,那么您需要让memcache监听该地址,然后配置server2配置为使用192.168.1.100作为memcache的地址它使用的服务器,因此它可以连接到server1上运行的memcache服务