.sock文件没有出现在带有gunicorn的项目目录中

时间:2018-04-21 20:35:26

标签: django nginx gunicorn digital-ocean

我正在尝试为我的网络服务器设置gunicorn,我目前正在关注本教程:https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04#create-a-gunicorn-systemd-service-file

问题是gunicorn没有在我的项目目录中生成 myproject.sock 文件。

我在此文件中的配置:/etc/systemd/system/gunicorn.service,如下所示:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=daniel
Group=www-data
WorkingDirectory=/home/daniel/myproject
ExecStart=/home/daniel/myproject/myproject_venv/bin/python3 home/daniel/myproject/myproject_venv/bin/gunicorn --workers 3 -b :8000     myproject.wsgi:application

[Install]
WantedBy=multi-user.target

我正在使用Digital Ocean的Django作为我的网络服务器,所以在一开始,服务器附带了django/django_project/django_project等文件和目录。 但是,我没有使用已经制作的文件,而是使用新目录创建了一个新项目(正如教程所说)。

当查看位于顶部的gunicorn错误日志sudo journalctl -u gunicorn时,它会显示:

Listening at: unix:/home/django/gunicorn.socket (1915)

如前所述,我创建了一个新目录,其目录与 django 的目录不同,所以我正在寻找一种方法来改变gunicorn正在收听的地方。具体来说,我希望它在home/daniel/myproject/myproject.sock听取。

不幸的是, myproject.sock 由于某种原因不存在。

我的项目文件由sudo用户和组拥有,因此unicorn可以访问。 WorkingDirectory应该是正确的。

我很感激任何帮助,因为我对nginx,unicorn和django都很陌生。

1 个答案:

答案 0 :(得分:0)

而不是-b :8000尝试--bind unix:/home/daniel/myproject/myproject.sock。我自己还没有使用过gunicorn,但是我猜它现在正在绑定到tcp端口8000.