[英]AWS Load balancer health check: Health checks failed with these codes: [301]
[英]AWS Fargate - Application load balancer(ELB) shows unhealthy targets with error “Health checks failed with these codes: [502]”
My app is running on port 3000 and web context is /app, so " http://host:3000/app/index.html " successfully returns index.html page running the app locally.
負載均衡器(公共)偵聽端口 80 並將流量轉發到端口 3000 上的目標。
AWS Fargate - 任務定義將主機和容器端口映射到端口 3000。 - 任務顯示為 RUNNING 和狀態 HEALTHY 但最終由於 ELB 運行狀況檢查失敗而停止。 而且我可以在雲手表中看到我的應用程序啟動日志(任務-> 日志)。 - 集群服務的安全組在自定義 tcp 端口 3000 上接收入站流量。
我嘗試通過更新 TargetGroup 運行狀況檢查以使用路徑作為“/”、“/app”和“/app/index.html”,但這也不起作用。
首先驗證:
是時候看看 ELB 日志了,您可以按照本教程啟用它們。
使用 ECS 服務日志、ECS 任務日志和 ELB 日志,您可以確定應用程序啟動和運行所需的時間,一旦您知道,將 ECS 服務寬限期配置為該值。
一旦您的寬限期足夠大以允許前面解釋的情況發生,您的應用程序將通過健康檢查。
例如,在我們的案例中,Spring 引導應用程序在 EC2 實例中啟動大約需要 20 秒,在 ECS Fargate 服務上可能需要超過 3 分鍾才能到達,因此我們將寬限期設置為 240 秒,從而解決了問題。
您需要將 TargetGroup 健康檢查配置為使用 3000 端口,因為在您的應用程序正在偵聽 3000 端口並且 ALB 將請求發送到在該端口中運行的任務,您可以轉到 TargetGroup 健康檢查選項卡並在選項端口 select 覆蓋。 如果您創建了 ECS 服務,請驗證健康檢查寬限期,在某些情況下,該任務可能需要很長時間才能正確啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.