首页 > 后端开发 > Golang > 为什么我的 Go 应用程序在 Heroku 上构建成功,但因'应用程序错误”而失败?

为什么我的 Go 应用程序在 Heroku 上构建成功,但因'应用程序错误”而失败?

DDD
发布: 2024-12-17 05:28:24
原创
174 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板