heroku绑定到localhost上的gunicorn,没有搞乱部署到heroku

时间:2013-08-25 20:48:33

标签: django heroku gunicorn procfile

这是来自gunicorn on heroku: binding to localhost的衍生问题。

如何让gunicorn在本地工作(使用工头)并在Heroku上部署?

Procfile包含:

web: gunicorn mysite.wsgi

当我使用工头在本地部署时,gunicorn绑定到http://0.0.0.0:5000。我希望它绑定到127.0.0.1:8000。但是,如果我将Procfile更改为:

web: gunicorn -b 127.0.0.1:8000 mysite.wsgi

然后我无法部署到Heroku,浏览器将返回“应用程序错误”

$ heroku ps
=== web (1X): `gunicorn -b 127.0.0.1:8000 mysite.wsgi`
web.1: crashed 2013/08/22 23:45:04 (~ 1m ago)

默认绑定地址集在哪里和/或我在Procfile中放置了什么gunicorn选项以使其在127.0.0.1上运行? 我的情况可能是独一无二的,导致一个异常的默认设置(我在mac OS中工作 - 狮子,也许?)

1 个答案:

答案 0 :(得分:0)

不要将gunicorn绑定到本地ip。 proc文件中的web: gunicorn -b 127.0.0.1:8000 mysite.wsgi。这会强制您的django应用程序始终使用此本地端口,无论是在本地部署还是在Heroku的服务器上部署。

使用

web: gunicorn mysite.wsgi
proc文件中的

将使您的应用程序在127.0.0.1:8000本地部署,0.0.0.0:5000部署在heroku的服务器上。我知道你必须在上一个问题中使用bind方法让heroku在本地工作,但是这个方法只涉及一个未解决的问题。

使用foreman startweb: gunicorn mysite.wsgi一起工作,正如official docs(以及我自己的经验:)所说的那样。

在proc文件中尝试web: gunicorn mysite.wsgi,将其部署到heroku,看看它是否有效。

https://devcenter.heroku.com/articles/python