这是来自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中工作 - 狮子,也许?)
答案 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 start
与web: gunicorn mysite.wsgi
一起工作,正如official docs(以及我自己的经验:)所说的那样。
在proc文件中尝试web: gunicorn mysite.wsgi
,将其部署到heroku,看看它是否有效。