Amazon ELB 健康檢查如何運作?

Amazon ELB 健康檢查如何運作?

我在為我的伺服器配置 ELB 時遇到問題。

我使用完全相同的配置啟動 2 個微實例,並嘗試進行負載平衡。然而,它們從未通過健康檢查(HTTP 連接埠 80 路徑:「/」)。

  • 網站上Ping 正常。 80 上的 telnet 也是如此。

健康檢查是如何進行的?我真的做錯了什麼嗎?

編輯:

  • 直接瀏覽器存取和 GET(透過curl)都可以正常工作(狀態 200)

答案1

我也有同樣的問題。我只是讓它檢查 TCP:80 作為臨時解決方案(效果很好)。

答案2

我得出的結論是,回應除了 HTTP 200 回應之外,還必須包含某些標頭。我在實例上運行的 tomcat 伺服器傳回的 HTTP 200 不起作用,但 httpd 提供的靜態 html 頁面(也傳回 200 程式碼)工作正常。查看標頭,少數區別之一是 tomcat 不包含內容類型。但不確定為什麼會有所不同。

答案3

我假設它對每個伺服器的指定路徑「/」執行 HTTP GET 請求,並尋找成功的 HTTP 回應代碼 (200)。您能否http://<backend_server_IP>:80/透過瀏覽器(或 CLI 工具,例如wget或)成功發出 GET 請求curl

如果請求成功處理,第二件事要問的是:您是否配置了伺服器的安全性群組,以便對連接埠 80 的存取僅限於特定來源位址或子網路?如果是,則需要將ELB的安全群組新增至過濾器。該組始終被稱為:

amazon-elb/amazon-elb-sg

因此,您只需將其新增至 AWS 控制台「安全群組」部分的「來源」欄位下即可。

答案4

所以我剛剛通過將 http 檢查指向靜態 html 文件(而不是 php 頁面)來使其工作。

儘管“/”在使用curl等時返回有效的http狀態,但它不起作用。

相關內容