我已经memcached
在我的服务器中安装了,我已经将默认值修改php.ini
为:
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
我正在使用带有 Auto Scaling 和负载均衡器的 Amazon EC2 实例(Ubuntu 16.04 LTS),但我对PHP memcached
. 首先,解释我的问题:我已经存储sessions
在我的Server A
并且我还有另一个Server B
也在运行。但是,当我停止Server A
(我已连接sessions
)时,负载均衡器会将我重定向到Server B
并且看起来sessions
丢失了,因为我与我的网站断开连接,他要求我再次登录。
我阅读了这段摘录,用于在多个服务器上使用 memcached 进行会话存储(从这里):
在您的 php.ini 中,您应该将 session.save_path 设置为 memcached 服务器列表,例如 server1:11211、server2:11211。
但是我怎么能说我正在使用 Auto Scaling 并且我可能有“n”个服务器呢server1:11211
?server2:11211
您的 memcached 服务器应该在您的 ASG 之外。如您所知,状态不能存储在 ASG 实例中。因此,要么使用 AWS 的 Elasticache 服务,要么运行您自己的 memcached 服务器,然后将您的 ASG 实例指向那里。