【发布时间】:2015-02-04 12:59:17
【问题描述】:
我在两台服务器上的 memcache 上都面临会话存储问题。我在云服务器上安装了 memcached
我有两台服务器“服务器 1”和“服务器 2”,还有两个负载平衡器,一个用于端口 443,另一个用于 80。我想在两台服务器的内存缓存中保持会话,所以如果一台服务器出现故障,服务器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 并添加
端口="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="264"
OPTIONS="-l 127.0.0.1" // 我在这里尝试将服务器 1 的 IP 放在服务器 1 的内存缓存配置文件中,将服务器 2 的 IP 放在服务器 2 的内存缓存配置文件中
4) /etc/init.d/memcached 启动
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=consistent
2) memcache.session_redundancy=3
3) memcache.allow_failover=1
在 php.ini 中,我改变了
1) session.save_handler = 内存缓存
2) session.save_path = tcp://server1:11211,tcp://server2:11211
并重新启动 apache 服务器
您可以在此处查看所有配置设置:http://www.diehardfans.com/phpinfo.php
现在在现场,当我尝试写入/读取会话时,它显示错误:
警告:session_write_close() [function.session-write-close]:无法写入会话数据(内存缓存)。请在第 702 行的 /mnt/cbsvolume1/sporters/library/Zend/Session.php 中验证 session.save_path 的当前设置是否正确(tcp://server1:11211,tcp://server2:11211)
P.S: 11211 端口在云通道上是开放的,我们在负载均衡器上使用循环算法。
如果我们做错了,请检查并告诉我们。
提前致谢
【问题讨论】:
标签: session zend-framework memcached rackspace-cloud