在Heroku 上部署Golang 應用程式:建置成功,但應用程式錯誤
在具有Go 依賴支援的Heroku 上部署Golang 應用程式時,您嘗試存取端點時可能會遇到「應用程式錯誤」。當 Web 伺服器未正確綁定到 Heroku 上的對應連接埠時,就會發生此問題。
您的應用程式日誌訊息指示以下錯誤:
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
原因:
該問題是由於嘗試在硬編碼連接埠(9000 ) 上啟動伺服器而不是將其綁定到由Heroku 的$PORT 環境變數。
解決方案:
要解決此問題,請使用 $PORT 環境變數在正確的連接埠上啟動伺服器。將現有程式碼替換為:
err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))
使用以下內容:
port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))
此變更可確保伺服器正確綁定到Heroku 指定的端口,從而解決“應用程式錯誤”問題。
以上是為什麼 Heroku 上的 Golang 應用程式在成功建置後顯示「應用程式錯誤」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!