1

这是heroku 上 gunicorn 的一个衍生问题:绑定到 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 中工作 - 也许是狮子?)

4

1 回答 1

0

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

使用

web: gunicorn mysite.wsgi

在您的 procfile 中将使您的应用程序部署在127.0.0.1:8000本地和0.0.0.0:5000heroku 的服务器上。我知道您必须在上一个问题中使用 bind 方法才能让 heroku 在本地工作,但该方法仅涵盖未解决的问题。

正如官方文档(以及我自己的经验:)) 所说,使用foreman startwith 应该可以工作。web: gunicorn mysite.wsgi

尝试web: gunicorn mysite.wsgi在您的 procfile 中,将其部署到 heroku 并查看它是否有效。

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

于 2013-08-25T21:18:18.027 回答