簡體   English   中英

AWS Elastic Beanstalk運行狀況檢查問題

[英]AWS Elastic Beanstalk health check issue

我的Web應用程序是Django,Web服務器使用Nginx,使用Docker鏡像和Elastic Beanstalk進行部署。

通常沒有問題,但隨着負載均衡器擴展EC2,我的Web服務器變為502 Bad Gateway。

我檢查了Elastic Beanstalk應用程序日志,大約16%的請求返回了5xx錯誤,此時負載均衡器擴展了EC2,導致Web服務器轉換到502 Bad Gateway狀態,Elastic Beanstalk應用程序轉換為Degraded狀態。

當負載均衡器執行運行狀況檢查時,這是一個常見問題嗎? 如果沒有,如何關閉健康檢查?

我附上了一張拍攝的圖像供參考。

在此輸入圖像描述

據我所知,只有通過手動檢查您網站上的主要鏈接以及是否可以通過簡單的GET請求訪問它們,才能減輕502 Bad Gateway錯誤。

在我的網站的情況下,我在登錄頁面和一個關於頁面時遇到了一些問題(並且它遺漏了我網站的大約33%)這就是為什么在上傳到EC2后我在健康檢查上得到了5xx錯誤。 我通過簡單地使鏈接在服務器上運行來解決問題(有一些功能只在localhost上運行而不在AWS上運行所以我修復了它並在運行狀況檢查中獲得了OK狀態)

我認為刪除健康檢查沒有意義,因為它提供了有關您網站的重要信息,並且您可能不希望您的網站有無法訪問的網頁。

跟蹤日志以縮小問題范圍。

我希望你找到解決方案。

在部署代碼時,您將獲得502,因為EC2實例未通過運行狀況檢查調用。 您需要調整負載平衡運行狀況檢查默認設置,以便有足夠的時間完成部署。 如果在每次部署后也重新啟動服務器,請為部署留出更多時間。

AWS負載均衡器使用您指定的路徑每N秒向每個已注冊的實例發送運行狀況檢查請求。 默認間隔秒為30秒。 如果運行的任何實例的運行狀況檢查失敗N次(默認值為2),則運行狀況將更改為Degraded或Severe,具體取決於未響應的實例百分比。

  1. 發送應返回200響應代碼的請求。 默認為'/index.html'
  2. 超時前等待N秒(默認為5秒)
  3. N間隔秒后再次嘗試(默認為30秒)
  4. 如果N個連續呼叫失敗,請將運行狀況更改為警告或嚴重(默認不健康閾值為2)
  5. 連續N次成功呼叫后,將健康狀態恢復為OK(默認值為10)。

使用默認設置,如果任何Web服務器實例關閉超過一分鍾(每次嘗試2次,則為2次),則會將其視為中斷。 需要5分鍾(每30秒10次嘗試)才能恢復到Ok狀態。

有關詳細說明和配置選項,請查看AWS文檔: 配置Elastic Load Balancing的運行狀況檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM