每當我嘗試在 aws 中重新部署負載平衡服務(通過 copilot)時,我不斷收到運行狀況檢查失敗(502 錯誤網關)的錯誤訊息:
(service my-app-my-env-my-service-Service-n6SienH8zSJt) (port 3000) is unhealthy in
(target-group arn:aws:elasticloadbalancing:us-east-1:[my target grouo]) due to (reason Health checks failed).
我有一個集群 (ECS),其中有兩個服務(一個后端服務完全正常,然后是一個導致問題的負載平衡服務),每個服務都運行一個任務 (Fargate)。負載均衡服務是一個流星/節點應用程式,它正在偵聽埠 3000。
彈性負載均衡器(應用程式)正在偵聽埠 80,它應該將流量轉發到上述服務的目標組,該目標組應該偵聽埠 3000。
負載均衡服務的這個目標群體有:
- 目標型別:IP
- IP地址型別:IPv4
- 協議:埠 -- HTTP:3000
- 協議版本:HTTP1
該組的目標擁有自己的 IP 地址,埠為 3000。
目標型別:IP 地址,因為我的任務使用的是 fargate 而不是 EC2。所以當一個任務打開時,我正確地看到了注冊到目標組的任務的私有 IP。
一些注意事項:
- 服務器正常啟動。我收到的日志表明服務器運行狀況良好且未顯示任何錯誤
- 我有
/_health一條我設定并在本地作業的路線(通過對 localhost:3000/_health 的 curl 請求獲取我的 200 狀態)。我非常確信沒有路由正在作業,因為我更改了我的應用程式以呈現靜態頁面而不管路由如何并且仍然存在連接問題。這讓我覺得問題在于負載均衡器和服務之間
堅持了一個星期,所以如果有人知道我錯過了什么,那將特別有幫助!如果有幫助,我很樂意分享有關我的集群的更多資訊!提前致謝 :)
uj5u.com熱心網友回復:
您的副駕駛清單中健康檢查路線的映射是什么?
默認情況下,副駕駛將運行狀況檢查配置為目標“/”。
uj5u.com熱心網友回復:
我對此感到很傻,但很確定我找到了解決方案。雖然我port: 3000在 中的影像上正確配置了manifest.yml,但我需要PORT: 3000在清單的變數中呼叫一個額外的環境變數。這似乎可以解決問題……就像我說的愚蠢錯誤!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/383080.html
標籤:节点.js 亚马逊网络服务 流星 亚马逊-ecs aws-副驾驶
下一篇:如何使用快速上傳檔案?
