【问题标题】:Heroku error with Golang web server: Web process failed to bind to $PORT within 60 seconds of launchGolang Web 服务器的 Heroku 错误:Web 进程在启动后 60 秒内无法绑定到 $PORT
【发布时间】:2020-02-18 02:37:40
【问题描述】:

我正在尝试在 heroku 上运行我的 golang 网络应用程序。它将成功上传,但随后会因代码“H10”而崩溃。但是,它也给了我错误 R10 并指出:“Web 进程在启动后 60 秒内无法绑定到 $PORT”。

尝试查找文件中明确设置的端口(并且在我的计算机上工作)是否存在问题,或者是否存在其他问题。目前没有链接到应用程序的数据库(根据 heroku,这是导致此崩溃的常见原因),但它使用 gorilla/mux 作为供应商的依赖项,因此这可能是问题所在。

【问题讨论】:

  • 你使用的是固定端口号吗?

标签: go heroku


【解决方案1】:

this

您似乎无法指定任意端口,但必须检查 heroku 为您的部署分配的 PORT 的环境。

你可以这样做,例如

port:=os.Getenv("PORT")

然后在您的服务器上使用port

请在问题中包含代码(甚至是重现),以便我们更容易理解问题。

【讨论】:

  • 我尝试通过 Heroku 的网站和程序本身在 Heroku 中设置 PORT 环境变量。它再次在我的机器上正常工作,但在 Heroku 中提供了相同的错误。
  • 重申一下,您不能设置端口,您只需使用平台分配的值即可。请将您的代码粘贴到您的问题中。
  • 端口的行如下log.Fatal(http.ListenAndServe(os.Getenv("PORT"), router))无论我是否允许设置端口,这都应该有效吗?
  • 其实你需要在它前面加上至少一个冒号,因为它代表主机:路径
  • 所以...fmt.Sprintf(":%s", os.Getenv("PORT"))...
猜你喜欢
  • 2020-02-10
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
  • 2013-03-19
  • 2021-02-19
  • 2019-12-07
  • 2021-02-22
相关资源
最近更新 更多