首頁 > 後端開發 > Golang > 為什麼我的 Go 應用程式在 Heroku 上建置成功,但因「應用程式錯誤」而失敗?

為什麼我的 Go 應用程式在 Heroku 上建置成功,但因「應用程式錯誤」而失敗?

DDD
發布: 2024-12-17 05:28:24
原創
173 人瀏覽過

Why Does My Go App Build Successfully on Heroku But Fail with an

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板