Php
通過具有自動擴展功能的 AWS 負載均衡器訪問應用程序
我正在為我計劃從專用託管服務遷移到 AWS 的 Web 應用程序配置測試 AWS 架構。我現在擁有的如下:
- 一個 MySql RDS,我的應用程序數據在其中。
- 兩個 EC2 實例。此實例具有應用程序原始碼(用 PHP 編寫)並已配置為連接到 RDS。
- 一個負載均衡器。根據處理器使用情況,我已將其設置為在 2 到 10 個實例之間自動縮放,但我很可能會在應用程序上線後調整策略。
新的 EC2 實例已經啟動,程式碼和 RDS 連接參數已通過自定義映像準備好,我在聖保羅地區工作。
除了一件事,一切都很好。如果我通過 ELB DNS 記錄訪問該網站,我會在那裡看到該網站但我無法登錄。當我輸入使用者憑據時沒有任何反應。(該站點基本上是一個管理面板,因此我必須登錄才能查看其內容),但如果我通過單個實例 IP 或 DNS 記錄訪問,我可以正常登錄並使用該應用程序。使用者數據(使用者和密碼)儲存在 RDS 中。
如果有人經歷過類似的事情,我非常感謝您的幫助。先感謝您!
維護會話的常用方法是:
- 驗證使用者。
- 向瀏覽器發送一個帶有該會話唯一 ID 的 cookie。
- 在該瀏覽器的後續點擊中查找會話 cookie。
會話 cookie 通常會從獨立於 Web 伺服器的位置儲存和檢索,例如單獨的數據庫伺服器。這樣,無論他們訪問哪個 Web 伺服器,他們都會獲得相同的 cookie 和相同的會話。
會話 cookie 需要對客戶端安全且唯一,因此某些應用程序會創建一個雜湊值,其中包含計算中的客戶端 IP。如果是這種情況,那麼不同的 IP 看起來就像不同的會話。
您需要檢查您的應用程序,看看是否是這種情況。
或者,如果您確實需要將會話綁定到特定的伺服器(例如,應用程序在 Web 伺服器上本地儲存狀態),您可以使用ELB 粘性會話將會話綁定到特定的 Web 伺服器。僅當您的應用程序實際在每個 Web 伺服器上本地儲存狀態時才需要這樣做。