2013-03-20 92 views
0

我的Web應用程序生產部署位於負載均衡器後面的2臺服務器上。2臺服務器上的Passport會話

我正在使用護照(本地策略)與會話進行身份驗證。

當應用程序在一臺服務器上運行時,一切正常,但在生產中,一臺服務器無法識別其他服務器建立的cookie /會話(每個請求都隨機發送到不同的服務器,我無法控制它)。

結果 - 試圖訪問需要認證的(即使是在我登陸)頁面,當我重定向到登錄頁面。

我怎樣才能讓兩臺服務器創建一個會話cookie,它們都可以識別(顯然我使用了快速會話中間件的相同祕密)。

謝謝,

阿龍

回答

1

選項1

配置負載均衡器總是路線相同的IP到同一臺機器。更改網絡的用戶可能會遇到問題。

選擇二

使用第三機上運行的數據庫,並建立express.session(以及與此有關的任何其他數據庫連接)使用該機器的商店。 This question/answer提到如何用貓鼬/ mongodb做到這一點。

我覺得這是比較常見的解決方案,但當然是更昂貴的,如果你不需要第三臺計算機。

+0

謝謝!選項1不適用於我(無法控制負載平衡器)。我使用了選項2 - 在數據庫中保存會話。 – alonkad 2013-03-20 13:11:46