Amazon-Web-Services

如何使用 PHP memcached 通過 Auto Scaling 進行會話儲存?

  • December 12, 2016

我已經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:11211server2:11211

您的 memcached 伺服器應該在您的 ASG 之外。如您所知,狀態不能儲存在 ASG 實例中。因此,要麼使用 AWS 的 Elasticache 服務,要麼執行您自己的 memcached 伺服器,然後將您的 ASG 實例指向那裡。

引用自:https://serverfault.com/questions/820156