Django gunicorn无法以用户身份连接到套接字

时间:2017-12-27 23:49:51

标签: python django sockets gunicorn

Gunicorn告诉我套接字在以用户身份运行时无法连接,但是当以root身份运行时,它可以完美地工作。以下是命令。

cd /home/myuser/web/myproject 

source /home/myuser/myvenv/bin/activate

/home/myuser/myvenv/bin/gunicorn myproject.wsgi:application --name myproject --workers 3 --user=myuser --group=www-data --bind=unix:/home/myuser/myvenv/run/gunicorn.sock

其中

  • Django项目路径:/home/myuser/web/myproject(包含manage.py)

  • Python virtualenv路径:/home/myuser/myvenv

以root身份运行时:

[2017-12-27 23:25:43 +0000] [24336] [INFO] Starting gunicorn 19.7.1
[2017-12-27 23:25:43 +0000] [24336] [INFO] Listening at: unix:/home/myuser/myvenv/run/gunicorn.sock (24336)
[2017-12-27 23:25:43 +0000] [24336] [INFO] Using worker: sync
[2017-12-27 23:25:43 +0000] [24339] [INFO] Booting worker with pid: 24339
[2017-12-27 23:25:43 +0000] [24340] [INFO] Booting worker with pid: 24340
[2017-12-27 23:25:44 +0000] [24377] [INFO] Booting worker with pid: 24377

我杀死了这个进程,并确保它在ps -A | grep gunicorn中不存在。然后我尝试运行与myuser相同的命令。以下是运行命令时的错误。

[2017-12-27 23:21:30 +0000] [23965] [INFO] Starting gunicorn 19.7.1
[2017-12-27 23:21:30 +0000] [23965] [ERROR] Retrying in 1 second.
[2017-12-27 23:21:31 +0000] [23965] [ERROR] Retrying in 1 second.
[2017-12-27 23:21:32 +0000] [23965] [ERROR] Retrying in 1 second.
[2017-12-27 23:21:33 +0000] [23965] [ERROR] Retrying in 1 second.
[2017-12-27 23:21:34 +0000] [23965] [ERROR] Retrying in 1 second.
[2017-12-27 23:21:35 +0000] [23965] [ERROR] Can't connect to 
/home/myuser/myvenv/run/gunicorn.sock

我做过的事情:

  • 已安装所有依赖项。

  • 确保所有文件夹都存在myuser的正确权限。

  • chmod 777同时使用Django项目和Python virtualenv路径。

  • chown myuser:www-data同时使用Django项目和Python virtualenv路径。

  • 使用/home/myuser/myvenv/run/gunicorn.sock之外的其他路径,例如/home/myuser/myvenv/run/myproject.sock/home/myuser/myvenv/socket/gunicorn.sock 在gunicorn的绑定参数中/tmp/gunicorn.sock

0 个答案:

没有答案