當我連線到設定為使用 Classic Load Balancing 的 EC2 執行個體上執行的 Web 伺服器時,為什麼會收到 HTTP 5xx 錯誤?

1 分的閱讀內容
0

當我嘗試連線到 Web 伺服器時,收到了 HTTP 502、503 或 504 錯誤。Web 伺服器在設定為使用 Classic Load Balancing 的 EC2 執行個體上執行。

解決方法

HTTP 502 (無效的閘道)

如果 Classic Load Balancer 無法剖析訊息,您可能會收到 HTTP 502 錯誤。在 EC2 執行個體上執行的 Web 伺服器或關聯的後端應用程式伺服器會傳回 Classic Load Balancer 無法剖析的訊息。如需詳細資訊,請參閱如何對透過 Classic Load Balancer 發出請求時的 HTTP 502 錯誤進行疑難排解?

HTTP 503 (服務無法使用)

發生 HTTP 503 錯誤的原因如下:

  • 突增佇列已滿。檢閱 SpilloverCount 指標,檢查執行個體是否有能力處理請求速率。
  • 沒有運作狀態良好的執行個體。確保您的負載平衡器回應的每個可用區域中都有運作狀態良好的執行個體。若要執行這項操作,請檢閱 HealthyHostCount 指標。如需詳細資訊,請參閱Classic Load Balancer 疑難排解:運作狀態檢查
  • 您未在負載平衡器回應的每個可用區域中註冊至少一個執行個體。如果您無法確認執行個體已在每個可用區域中註冊,請開啟跨區域負載平衡
  • 您的 Web 伺服器執行個體註冊的 Classic Load Balancer 未開啟連接耗盡

如需詳細資訊,請參閱如何對使用 Classic Load Balancer 時傳回的 HTTP 503 錯誤進行疑難排解?

HTTP 504 (閘道逾時)

發生 HTTP 504 錯誤的原因如下:

  • Web 伺服器執行個體或後端應用程式伺服器執行個體忙碌中,無法在設定的 Elastic Load Balancing (ELB) 閒置逾時限制內回應請求。如需詳細資訊,請參閱如何對 ELB Classic Load Balancer 的高延遲問題進行疑難排解?
  • Web 伺服器執行個體或後端應用程式伺服器執行個體會在負載平衡器執行之前終止連線。這會導致連線過早終止。
  • 當請求進行時,Web 伺服器執行個體或後端應用程式伺服器執行個體當機或重新啟動伺服器。這會導致伺服器中斷所有連線。
  • Apache Web 伺服器執行個體的 AcceptFilter http/https 選項已開啟。這會指示 Apache 在連線上實作 TCP_DEFER_ACCEPT
  • 事件 (來自 Apache 網站) MPM 對 Apache Web 伺服器執行個體開啟,但 preforkworker (來自 Apache 網站) MPM 並未以最佳方式設定。預設 ELB 閒置逾時限制為 60 秒。如需詳細資訊,請參閱使用 Apache 或 NGINX 作為 ELB 後端伺服器的最佳設定是什麼?

如需詳細資訊,請參閱如何對使用 Classic Load Balancer 時傳回的 HTTP 504 錯誤進行疑難排解?

相關資訊

什麼是 Elastic Load Balancing?

教學課程: 建立 Classic Load Balancer

設定 Classic Load Balancer 的運作狀態檢查

監控 Classic Load Balancer

AWS 官方
AWS 官方已更新 10 個月前