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