我正在使用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命令,但仍然会收到同样的错误。
答案 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