Связка Nginx + Supervisor + Gunicorn + Django является популярным и мощным комбинированным стеком для разворачивания и управления Django-приложениями. Она предлагает высокую производительность, масштабируемость и надежность.
Для отладки данной связки необходимо следовать нескольким шагам.
Шаг 1: Установка и настройка Nginx
Nginx — это популярный веб-сервер, который будет обрабатывать входящие запросы и перенаправлять их на Gunicorn или статические файлы. Для установки Nginx выполните следующие команды:
sudo apt update sudo apt install nginx
После установки вам понадобится настроить Nginx для проксирования запросов на Gunicorn. Создайте конфигурационный файл в каталоге /etc/nginx/sites-available/
, например myproject.conf
, и отредактируйте его следующим образом:
server { listen 80; server_name your_domain_or_ip; location / { proxy_pass http://unix:/path/to/your/project.sock; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
Не забудьте заменить your_domain_or_ip
на ваш домен или IP-адрес и /path/to/your/project.sock
на путь к сокету вашего проекта.
После внесения изменений сохраните и закройте файл. Затем создайте символическую ссылку на этот файл в каталоге /etc/nginx/sites-enabled/
:
sudo ln -s /etc/nginx/sites-available/myproject.conf /etc/nginx/sites-enabled/
Теперь перезапустите Nginx, чтобы применить изменения:
sudo systemctl restart nginx
Шаг 2: Установка и настройка Gunicorn
Gunicorn - это WSGI-сервер (Web Server Gateway Interface), который отвечает за запуск и обработку запросов вашего Django-приложения. Установите Gunicorn через pip
:
pip install gunicorn
Затем создайте файл gunicorn.service
в каталоге /etc/systemd/system/
и отредактируйте его следующим образом:
[Unit] Description=Gunicorn daemon After=network.target [Service] User=your_username Group=www-data WorkingDirectory=/path/to/your/project ExecStart=/path/to/your/virtualenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/path/to/your/project.sock your_project.wsgi:application [Install] WantedBy=multi-user.target
Установите сервис через systemctl
:
sudo systemctl start gunicorn sudo systemctl enable gunicorn
Шаг 3: Установка и настройка Supervisor
Supervisor является системой управления процессами, которая гарантирует, что Gunicorn всегда работает и восстанавливается после сбоев. Установите Supervisor через pip
:
pip install supervisor
Создайте конфигурационный файл для Supervisor в каталоге /etc/supervisor/conf.d/
, например myproject.conf
, и отредактируйте его следующим образом:
[program:gunicorn] command=/path/to/your/virtualenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/path/to/your/project.sock your_project.wsgi:application directory=/path/to/your/project user=your_username autostart=true autorestart=true redirect_stderr=true
Не забудьте заменить /path/to/your/virtualenv
, /path/to/your/project
и your_username
на соответствующие значения.
Перезапустите Supervisor, чтобы применить изменения:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl restart gunicorn
После завершения этих шагов связка Nginx + Supervisor + Gunicorn + Django должна быть правильно настроена и готова к отладке вашего Django-приложения.