heroku上的gunicorn:绑定到本地主机
Posted
技术标签:
【中文标题】heroku上的gunicorn:绑定到本地主机【英文标题】:gunicorn on heroku: binding to localhost 【发布时间】:2013-08-24 20:31:26 【问题描述】:我一直在关注https://devcenter.heroku.com/articles/django#declare-process-types-with-procfile 上的教程。 除了一件让我烦恼的事情之外,一切都很顺利。
在启动工头后,我应该看到以下内容:
$ foreman start
2013-04-03 16:11:22 [8469] [INFO] Starting gunicorn 0.17.2
2013-04-03 16:11:22 [8469] [INFO] Listening at: http://127.0.0.1:8000 (8469)
但是,我得到:
Starting gunicorn 17.5
Listening at: http://0.0.0.0:5000
如何更改它以使其仅侦听我的本地计算机(即 127.0.0.1)?
我的 Procfile 只包含
web: gunicorn hellodjango.wsgi
谢谢!
【问题讨论】:
您确定您在本地使用工头吗?http://0.0.0.0:5000
是 heroku 在将项目推送给他们时提供的标准公共 URL。
在教程的那个阶段没有推送到heroku(甚至没有git repo)。 gunicorn 的默认绑定是 127.0.0.1:8000 还是 0.0.0.0:5000?
我相信本地是 127 并且在 heroku 0.0.0 上。
所以在我的情况下它没有正确配置,因为它似乎没有这样做(请参阅我的后续问题)。
在***.com/questions/18433550/…上跟进问题
【参考方案1】:
这看起来是当您运行 use gunicorn 来为工头提供 WSGI 应用程序时使用的默认 IP 地址。
像这样在没有工头的情况下运行 django 应用:
gunicorn hellodjango.wsgi:application
将其绑定到 gunicorn 的默认值 127.0.0.1:8000
2013-08-23 00:02:54 [45352] [INFO] Starting gunicorn 17.5
2013-08-23 00:02:54 [45352] [INFO] Listening at: http://127.0.0.1:8000 (45352)
2013-08-23 00:02:54 [45352] [INFO] Using worker: sync
2013-08-23 00:02:54 [45355] [INFO] Booting worker with pid: 45355
并在您的 Procfile
中指定要使用的绑定:
web: gunicorn -b 127.0.0.1:8000 hellodjango.wsgi
将其绑定到127.0.0.1:8000
,或您指定的任何内容。
00:06:26 web.1 | started with pid 45384
00:06:26 web.1 | 2013-08-23 00:06:26 [45384] [INFO] Starting gunicorn 17.5
00:06:26 web.1 | 2013-08-23 00:06:26 [45384] [INFO] Listening at: http://127.0.0.1:8000 (45384)
00:06:26 web.1 | 2013-08-23 00:06:26 [45384] [INFO] Using worker: sync
00:06:26 web.1 | 2013-08-23 00:06:26 [45387] [INFO] Booting worker with pid: 45387
我很想知道工头在哪里告诉 gunicorn 使用 0.0.0.0
作为默认值。
【讨论】:
您已经回答了我的问题,谢谢!我也想知道默认设置在哪里。本教程跳过了这部分,因为他们获得了 127.0.0.1 绑定但没有在 gunicorn 命令中使用 -b 选项。 @Hamlet 我今天实际上遇到了同样的问题,gunicorn 嘲笑0.0.0.0
。这可能是一个很好的错误报告。你也在 Linux 13.04 上吗?
@agconti 不,Mac OSX Lion。你以前用什么,当你让它正常工作的时候?
@Hamlet windows 8 令人惊讶。
有趣,我也在 OSX 上 - 也许相关?以上是关于heroku上的gunicorn:绑定到本地主机的主要内容,如果未能解决你的问题,请参考以下文章
Dockerized React App 无法绑定到 Heroku 上的 $PORT
通过 Gunicorn 在 Heroku 上的 Django-twoscoops-project(骨架)。如何设置Procfile?
ModuleNotFound 错误尝试在 Heroku 中打开 Django 应用程序 - gunicorn 设置问题?