在Heroku 上部署Golang 應用程式:建置成功,但應用程式錯誤
使用Godep 支援將GoLang 應用程式部署到Heroku 的初始嘗試導致建置成功,但在存取應用程式端點時出現“應用程式錯誤”。為了解決這個問題,讓我們深入研究問題及其解決方案。
問題概述:
部署的應用程式在存取其端點時無法回應(例如,'/ ')。 Heroku 日誌顯示一條錯誤,指出「Web 程序無法綁定到$PORT。」
解決方案:
Heroku 要求應用程式將其Web 伺服器綁定定到連接埠由PORT 環境變數指定。但是,應用程式程式碼目前在連接埠 9000 上啟動伺服器。
要解決此問題,應用程式的伺服器應在 Heroku 指定的連接埠上啟動。具體方法如下:
import "os" func main() { // ... (your existing code) // Get the port from the PORT environment variable, or default to 9000 if not set port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } // Start the server on the specified port err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux)) // ... (your existing code) }
透過綁定到正確的端口,應用程式將不再遇到「啟動超時」錯誤,並且能夠透過 Heroku 在 HTTP 和 HTTPS 端口上成功處理請求網關。
以上是為什麼我的 Go 應用程式在 Heroku 上建置成功,但因「應用程式錯誤」而失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!