2014-12-06 80 views
0

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

我有两个服务器“服务器1”和“服务器2”和两个负载均衡器一个是如果为端口443和另一个为80.我想保持会话在两台服务器上的memcache,所以如果一台服务器关闭,服务器2应显示相同的会话。

我通过以下命令安装两个服务器上内存缓存:

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

2)百胜安装分布式缓存

3)VI /等/ SYSCONFIG /分布式缓存,并加入

PORT = “11211”
USER = “memcached的”
MAXCONN = “1024”
CACHESIZE = “264”
OPTIONS = “ - 1 127.0.0.1” //我在这里试图通过将服务器1的IP服务器上的内存缓存1配置文件和服务器2的IP服务器上的内存缓存2配置文件

4) /etc/init.d/memcached开始
5)的chkconfig --levels memcached的上
6)荫groupinstall “开发工具”
7)百胜安装的zlib-devel的235 libmemcached-devel的PHP-梨PHP-PECL-分布式缓存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 =内存缓存
2)的session.save_path = TCP://服务器1:11211,TCP://服务器2: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)

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

请检查并告知我们是否有任何错误。

在此先感谢

回答

0

尝试

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

,而不是

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

你不会是能够对IP地址127.0.0.1

如果你听的memcache只有来自本地服务器的连接可以连接。

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

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