基于AWS ECS 架構
@Marcin 提出了一個有趣的想法,但我無法理解 ALB 如何知道要轉發到哪個目標組,因為我嘗試使用 2 個偵聽器(HTTP 80 → 前端和 HTTP 5000 → 后端)沒有奏效。
假設我有以下內容(正如@Marcin 的目的)
|---> Target Group 1 ---> ECS Services for Frontend (private subnet)
Client ---> ALB (public subnet) ---|
|---> Target Group 2 ---> ECS Service for Backend (private subnet)
認為:
- ALB 可通過以下方式訪問
http://www.example.com并監聽: - HTTP 80 → 轉發到目標組 1
- HTTP 5000 → 轉發到目標組 2
- 前端容器暴露在埠上
3000 - 后端容器暴露在埠上
5000 - 目標組 1 映射到
HTTP 3000 - 目標組 2 映射到
HTTP 5000
上述設定的原因是,如果客戶端想要一個前端資源,訪問http://www.example.com(埠 80),但如果前端向后端發出 API 請求,它會通過http://www.example.com:5000/<end_point>(注意:5000)這樣做。
但是,這由于超時而掛起
POST http://www.example.com:5000/check net::ERR_CONNECTION_TIMED_OUT
我可以看到兩個目標組都在 AWS 控制臺中通過了各自的健康檢查
上述推理是否有問題,或者這是設定問題?
uj5u.com熱心網友回復:
根據評論。
問題在于ALB 的安全組中的規則允許埠 5000 的運氣。因此,解決方案是添加所需的規則。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471211.html
下一篇:以編程方式停止docker容器
