Gunicorn не может найти рабочий каталог на удаленной машине Ubuntu (Django+nginx+gunicorn)

У меня есть приложение django, развернутое на машине ubuntu, но оно не работает из-за ошибки в gunicorn.service (оно не может найти рабочий каталог, который я написал). Мой рабочий каталог находится в /home/ubunut/project. gunicorn.service:

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

[Service]
User=root
Group=www-data
WorkingDirectory=/home/ubuntu/project                                     
ExecStart=/home/ubuntu/project/env/bin/gunicorn --workers 3 --bind unix:/run/gunicorn.sock project.wsgi:application


[Install]
WantedBy=multi-user.target

Я зашел в nginx журнал:

2024/07/01 11:04:08 [error] 1906#1906: *23 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: myipaddress, server: ipaddress, request: "GET /en/ HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/en/", host: "ipaddress"

Поэтому я набрал sudo journalctl -u gunicorn.service -f, чтобы увидеть журналы в реальном времени:

Jul 01 11:29:17 landingpage (gunicorn)[2472]: gunicorn.service: Changing to the requested working directory failed: No such file or directory
Jul 01 11:29:17 landingpage systemd[1]: gunicorn.service: Main process exited, code=exited, status=200/CHDIR
Jul 01 11:29:17 landingpage systemd[1]: gunicorn.service: Failed with result 'exit-code'.
Jul 01 11:29:17 landingpage systemd[1]: gunicorn.service: Start request repeated too quickly.
Jul 01 11:29:17 landingpage systemd[1]: gunicorn.service: Failed with result 'exit-code'.
Jul 01 11:29:17 landingpage systemd[1]: Failed to start gunicorn.service - gunicorn daemon.

Я пытался перейти в корень проекта и скопировать путь командой pwd, проверил все разрешения. Все равно не работает. Как мне исправить gunicorn?

Основываясь на обновленной статье на DigitalOcean, посвященной настройке systemd с помощью gunicorn, вы можете попробовать изменить User=root на User=ubuntu.

Если вам необходимо использовать пользователя root, то вам следует проверить владельца каталога, а также подкаталогов и файлов в нем с помощью ls -lhR.

Вернуться на верх