cgk1::082024dd-22ba-4e4c-a305-52d45e425c4f
環境架構: 平台:Zeabur (Docker Compose 部署) 前端:React + Nginx (Dockerfile build) 後端:Flask + Gunicorn (Port 5001) 資料庫:MySQL 8.0 DNS:Cloudflare (目前已設為 DNS Only 灰色雲朵) 遇到的問題: 我在部署專案時持續遇到 502: SERVICE_UNAVAILABLE 錯誤。經過排查,後端 (Backend) 與資料庫運作正常,但前端 (Frontend Nginx) 容器與 Zeabur 負載平衡器之間的連線一直失敗。 目前卡在 Zeabur 的面板設定無法正確對應到容器的 Port,導致無法連線。
已嘗試過的排查步驟: Cloudflare 排查:確認 DNS 設為 DNS Only (灰色雲朵),排除 Cloudflare Proxy 造成的 SSL 問題。 後端檢查:查看 Log 確認 Backend Gunicorn 已成功啟動並監聽 0.0.0.0:5001,且成功連線資料庫。 Nginx Crash 排查:發現 Nginx 啟動時會因為 host not found in upstream "backend" 崩潰,已加入 resolver 127.0.0.11 和變數寫法,Log 顯示 Nginx 已成功啟動。 Port 80 vs 8080: 官方文件建議內網 Expose 80,我嘗試將 Dockerfile 和 nginx.conf 都改為 80。 關鍵問題點:但我刪除 Zeabur 網域綁定並重新綁定時,Zeabur 面板上的「容器連線埠」選單被鎖死在 8080,無法選擇 80。 導致我現在 Code 改成 80,但 Zeabur 強制導向 8080 -> 502 Error。 若 Code 改回 8080 配合 Zeabur -> 依然 502 Error。