Heroku 错误 H14(没有运行 Web 进程)

Posted

技术标签:

【中文标题】Heroku 错误 H14(没有运行 Web 进程)【英文标题】:Heroku Error H14 (No web processes running) 【发布时间】:2012-04-15 17:49:38 【问题描述】:

肯定有人遇到过这个问题。

按照所有说明设置节点和 npm。推送到heroku时没有错误。但是当我打开应用程序时,它显示“应用程序错误”

heroku ps

返回

Process  State      Command       
-------  ---------  ------------  
main.1   up for 1m  node main.js

同时

heroku logs

返回

Error H14 (No web processes running) -> GET mewtwo.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=

我尝试使用 heroku restart 重新启动应用程序,但仍然遇到相同的错误。谷歌一下,除了heroku restart,没有其他解决方案。有人试过其他方法吗?


答案:(我把它放在这里,因为我的代表太低,无法发布答案)

好吧,我自己终于弄明白了。

显然在 Procfile 中,我声明了

main: node main.js

但 Heroku 使用

web: node main.js

我认为命名可以是任何你想要的,但它实际上是严格的,你需要使用 web 来让它工作(heroku 没有强调这一点 - 要小心),至少现在,直到我弄清楚为什么这种严格性以及是否可以更改名称。

【问题讨论】:

你确定你已经购买了网络工作者实例吗? 我必须购买吗?我只是按照设置教程-devcenter.heroku.com/articles/nodejs,我想它是免费的,除非你想添加更多? 找到了“长时间运行多个测功机可能会对您的帐户产生费用”的引用。我只运行一个。 Hrm,也许它免费开始的:heroku.com/pricing#1-1 有一个“免费 -750 小时”列... 你应该接受这个答案。 【参考方案1】:

我遇到了同样的问题,但对我来说这是因为我需要运行heroku ps:scale web=1

【讨论】:

如果您最初忘记推送Procfile,则需要这样做。在这种情况下,即使稍后推送或运行heroku ps:restart 也无济于事。 添加 Procfile 后我什么也没看到。但是然后设置 ps:scale web=1 可以立即启动并运行。谢谢! 使用heroku fork复制应用程序后发生在我身上 在我推送了带有错误大小写的 procfile 的代码后发生的事情。 不管我最初做了什么,这对我有用...谢谢,杰夫【参考方案2】:

您的 Web 进程的名称必须是 web,这是 Heroku 在初始部署时始终扩展到“1”的进程。

Procfile 中的其他服务可以随心所欲地调用,但您首先需要对它们进行扩展(因此如果需要,您可以在其中设置仅开发进程)。

更多信息在这里:http://neilmiddleton.com/the-procfile-is-your-friend/ (缓存版本:https://web.archive.org/web/20130926005616/http://www.neilmiddleton.com/the-procfile-is-your-friend)

【讨论】:

我要补充一点,如果他真的想要一个命名进程为“main”,与web无关(对于工作进程,应该没有http路由),他可以做到通过缩放 web=0 main=1,然后重启 缩放时无需重启。

以上是关于Heroku 错误 H14(没有运行 Web 进程)的主要内容,如果未能解决你的问题,请参考以下文章

尝试部署 Puppeteer 应用程序 Heroku 后错误代码 = H14 desc="No web processes running"

没有运行 Web 进程错误 - 在 Heroku 上部署 Django

Heroku docker spring boot 镜像错误 503 H14

heroku desc部署错误=“没有运行Web进程”

将spring boot应用程序部署到heroku-错误消息“没有正在运行的Web进程”

Heroku 上的 Django。没有运行 Web 进程