Php

通過具有自動擴展功能的 AWS 負載均衡器訪問應用程序

  • August 5, 2014

我正在為我計劃從專用託管服務遷移到 AWS 的 Web 應用程序配置測試 AWS 架構。我現在擁有的如下:

  • 一個 MySql RDS,我的應用程序數據在其中。
  • 兩個 EC2 實例。此實例具有應用程序原始碼(用 PHP 編寫)並已配置為連接到 RDS。
  • 一個負載均衡器。根據處理器使用情況,我已將其設置為在 2 到 10 個實例之間自動縮放,但我很可能會在應用程序上線後調整策略。

新的 EC2 實例已經啟動,程式碼和 RDS 連接參數已通過自定義映像準備好,我在聖保羅地區工作。

除了一件事,一切都很好。如果我通過 ELB DNS 記錄訪問該網站,我會在那裡看到該網站但我無法登錄。當我輸入使用者憑據時沒有任何反應。(該站點基本上是一個管理面板,因此我必須登錄才能查看其內容),但如果我通過單個實例 IP 或 DNS 記錄訪問,我可以正常登錄並使用該應用程序。使用者數據(使用者和密碼)儲存在 RDS 中。

如果有人經歷過類似的事情,我非常感謝您的幫助。先感謝您!

維護會話的常用方法是:

  1. 驗證使用者。
  2. 向瀏覽器發送一個帶有該會話唯一 ID 的 cookie。
  3. 在該瀏覽器的後續點擊中查找會話 cookie。

會話 cookie 通常會從獨立於 Web 伺服器的位置儲存和檢索,例如單獨的數據庫伺服器。這樣,無論他們訪問哪個 Web 伺服器,他們都會獲得相同的 cookie 和相同的會話。

會話 cookie 需要對客戶端安全且唯一,因此某些應用程序會創建一個雜湊值,其中包含計算中的客戶端 IP。如果是這種情況,那麼不同的 IP 看起來就像不同的會話。

您需要檢查您的應用程序,看看是否是這種情況。

或者,如果您確實需要將會話綁定到特定的伺服器(例如,應用程序在 Web 伺服器上本地儲存狀態),您可以使用ELB 粘性會話將會話綁定到特定的 Web 伺服器。僅當您的應用程序實際在每個 Web 伺服器上本地儲存狀態時才需要這樣做。

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