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
.