使用 Nginx 作為反向代理來保持會話?

使用 Nginx 作為反向代理來保持會話?

我使用 NGINX 作為反向代理,並使用兩台 Apache 伺服器作為上游伺服器。

兩個 Apache 伺服器都安裝了自訂 PHP 應用程式並共用相同的 MYSQL 資料庫。

我相信 Apache 將會話儲存在 /var/lib/sessions 中。

如果我使用 NGINX,如何克服會話相關問題?我理解 ip_hash;但這是唯一可行的方法嗎?

想知道人們如何在伺服器端解決這個問題?

答案1

嚴格來說,這與nginx無關,這是一項為使用者提供跨多個後端一致的身份驗證/授權系統的任務。您可以使用任何負載平衡引擎來取代 nginx。

標準方法:

  • 使用memcached來儲存會話(雖然memcache作者不建議這樣做,但這種方法被廣泛使用,甚至PHP也對其有標準支援 - 您需要在php.ini中取消註釋一行)
  • 使用 redis 達到同樣的目的
  • 最近版本的 MySQL 提供memcached 相同的接口,用於在 MySQL 中儲存會話(這次它們將是磁碟支援的)-使用你喜歡的任何東西,唯一的事情-它應該是一個集中存儲

相關內容