我正在尝试为我的网络服务器设置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都很陌生。
答案 0 :(得分:0)
而不是-b :8000
尝试--bind unix:/home/daniel/myproject/myproject.sock
。我自己还没有使用过gunicorn,但是我猜它现在正在绑定到tcp端口8000.