![使用 Nginx 作為反向代理來保持會話?](https://rvso.com/image/668047/%E4%BD%BF%E7%94%A8%20Nginx%20%E4%BD%9C%E7%82%BA%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E4%BE%86%E4%BF%9D%E6%8C%81%E6%9C%83%E8%A9%B1%EF%BC%9F.png)
我使用 NGINX 作為反向代理,並使用兩台 Apache 伺服器作為上游伺服器。
兩個 Apache 伺服器都安裝了自訂 PHP 應用程式並共用相同的 MYSQL 資料庫。
我相信 Apache 將會話儲存在 /var/lib/sessions 中。
如果我使用 NGINX,如何克服會話相關問題?我理解 ip_hash;但這是唯一可行的方法嗎?
想知道人們如何在伺服器端解決這個問題?
答案1
嚴格來說,這與nginx無關,這是一項為使用者提供跨多個後端一致的身份驗證/授權系統的任務。您可以使用任何負載平衡引擎來取代 nginx。
標準方法:
- 使用memcached來儲存會話(雖然memcache作者不建議這樣做,但這種方法被廣泛使用,甚至PHP也對其有標準支援 - 您需要在php.ini中取消註釋一行)
- 使用 redis 達到同樣的目的
- 最近版本的 MySQL 提供memcached 相同的接口,用於在 MySQL 中儲存會話(這次它們將是磁碟支援的)-使用你喜歡的任何東西,唯一的事情-它應該是一個集中存儲