gunicorn:无法连接到gunicorn.sock

时间:2015-08-23 11:42:02

标签: django sockets gunicorn

我正在使用Django 1.8,我想用gunicorn运行我的应用程序。

我可以从命令行绑定到我的IP运行它:

gunicorn myapp.wsgi:application --bind xx.xx.xx.xx:8001

但现在我想通过Unix套接字运行它:

gunicorn myapp.wsgi:application --bind=unix$/webapps/myapp/run/gunicorn.sock

我收到此错误:

[2015-08-23 07:38:04 +0000] [18598] [INFO] Starting gunicorn 19.3.0
[2015-08-23 07:38:04 +0000] [18598] [ERROR] Retrying in 1 second.
[2015-08-23 07:38:05 +0000] [18598] [ERROR] Retrying in 1 second.
[2015-08-23 07:38:06 +0000] [18598] [ERROR] Retrying in 1 second.
[2015-08-23 07:38:07 +0000] [18598] [ERROR] Retrying in 1 second.
[2015-08-23 07:38:08 +0000] [18598] [ERROR] Retrying in 1 second.
[2015-08-23 07:38:09 +0000] [18598] [ERROR] Can't connect to $/webapps/myapp/run/gunicorn.sock

如果我ls -al /webapps/myapp/run我看到套接字文件确实存在,尽管它是空的:

srwxrwxrwx 1 opuser webapps 0 Aug 23 07:22 /webapps/myapp/run/gunicorn.sock

我该如何解决这个问题?

我最终希望以用户gunicorn运行opuser,我尝试将--user opuser --group webapps附加到gunicorn命令,但仍然会收到同样的错误。

2 个答案:

答案 0 :(得分:5)

根据文档(http://gunicorn-docs.readthedocs.org/en/latest/run.html),您应该使用:unix:$(PATH),这意味着您的命令应该是:

gunicorn myapp.wsgi:application --bind=unix:/webapps/myapp/run/gunicorn.sock

答案 1 :(得分:2)

先删除venv/run文件夹,然后再删除mkdir run,而不使用sudo