Gunicorn Запуск проекта Django: экземпляр nohup работает нормально, экземпляр службы systemd выдает ошибку 400

Описание проблемы:

У меня возникла проблема с настройкой Gunicorn при запуске проекта Django. В частности, у меня есть два экземпляра Gunicorn, запускающих один и тот же проект Django: один использует nohup, а другой реализован как служба systemd. Удивительно, но экземпляр, запущенный с помощью nohup, работает совершенно нормально, в то время как экземпляр, настроенный как служба systemd, постоянно возвращает ошибку 400.

Фоновая информация:

  • Я запускаю проект Django с Gunicorn в качестве WSGI-сервера.
  • Каждый экземпляр Gunicorn настроен одинаково.
  • Оба экземпляра используют один и тот же проект Django и конфигурацию Gunicorn.

Взятые шаги:

  1. nohup Instance: Я запускаю экземпляр nohup с помощью следующей команды:

    nohup /home/user/project_backend/venv/bin/gunicorn --workers 5 --bind 0.0.0.0:8000    backend.wsgi:application &
    
  2. Все работает отлично!

  3. Запустите Gunicorn как службу systemd, создайте или откройте файл конфигурации:sudo nano /etc/systemd/system/gunicorn.service

  4. Далее следует 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
    
  5. , а затем выполните sudo systemctl daemon-reload для применения изменений в конфигурации и sudo systemctl start gunicorn

  6. Попытка отправить один и тот же HTTP-запрос на оба экземпляра:

    • Запрос отправлен экземпляру nohup: успех
    • Запрос, отправленный экземпляру службы systemd: неудача (возвращается ошибка 400)
  7. Кто-нибудь сталкивался с подобной проблемой с Gunicorn и службами systemd?

  8. Какие дальнейшие шаги я могу предпринять, чтобы диагностировать и устранить несоответствие между двумя экземплярами?

  9. Существуют ли какие-либо конкретные различия в конфигурации между запуском Gunicorn с помощью nohup и в качестве службы systemd, которые потенциально могут вызвать такое поведение?

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