Gunicorn Запуск проекта Django: экземпляр nohup работает нормально, экземпляр службы systemd выдает ошибку 400
Описание проблемы:
У меня возникла проблема с настройкой Gunicorn при запуске проекта Django. В частности, у меня есть два экземпляра Gunicorn, запускающих один и тот же проект Django: один использует nohup, а другой реализован как служба systemd. Удивительно, но экземпляр, запущенный с помощью nohup, работает совершенно нормально, в то время как экземпляр, настроенный как служба systemd, постоянно возвращает ошибку 400.
Фоновая информация:
- Я запускаю проект Django с Gunicorn в качестве WSGI-сервера.
- Каждый экземпляр Gunicorn настроен одинаково.
- Оба экземпляра используют один и тот же проект Django и конфигурацию Gunicorn.
Взятые шаги:
nohup Instance
: Я запускаю экземплярnohup
с помощью следующей команды:nohup /home/user/project_backend/venv/bin/gunicorn --workers 5 --bind 0.0.0.0:8000 backend.wsgi:application &
Все работает отлично!
Запустите Gunicorn как службу systemd, создайте или откройте файл конфигурации:
sudo nano /etc/systemd/system/gunicorn.service
Далее следует
gunicorn.service
[Unit] Description=gunicorn daemon After=network.target [Service] User=user Group=user WorkingDirectory=/home/user/project_backend ExecStart=/home/user/project_backend/venv/bin/gunicorn --workers 5 --bind 0.0.0.0:8000 ExecReload=/bin/kill -s HUP $MAINPID KillMode=mixed TimeoutStopSec=5 [Install] WantedBy=multi-user.target
, а затем выполните
sudo systemctl daemon-reload
для применения изменений в конфигурации иsudo systemctl start gunicorn
Попытка отправить один и тот же HTTP-запрос на оба экземпляра:
- Запрос отправлен экземпляру nohup: успех
- Запрос, отправленный экземпляру службы systemd: неудача (возвращается ошибка 400)
Кто-нибудь сталкивался с подобной проблемой с Gunicorn и службами systemd?
Какие дальнейшие шаги я могу предпринять, чтобы диагностировать и устранить несоответствие между двумя экземплярами?
Существуют ли какие-либо конкретные различия в конфигурации между запуском Gunicorn с помощью nohup и в качестве службы systemd, которые потенциально могут вызвать такое поведение?