heroku上的gunicorn:绑定到localhost

时间:2013-08-22 08:07:00

标签: django heroku gunicorn procfile

我一直在关注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

谢谢!

1 个答案:

答案 0 :(得分:5)

这看起来是运行使用gunicorn为foreman提供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作为默认值的确切位置。