Сегодня мы погрузимся в мир настройки веб-серверов и воркеров, что позволит вашему проекту работать эффективно и без перебоев. Независимо от того, насколько сложен ваш проект, правильная конфигурация и тестирование в различных окружениях играют ключевую роль в его успешной работе. Мы разберем, как подготовить сервер к приему и обработке запросов, а также какие шаги необходимо предпринять, чтобы обеспечить стабильность и безопасность вашего приложения.
Начнем с того, что подготовим ваше окружение и установим необходимые библиотеки. Убедитесь, что у вас установлен add-apt-repository, так как он понадобится для добавления новых репозиториев. Введите команду sudo apt-get install software-properties-common
, чтобы установить этот инструмент, если он еще не установлен. Затем добавим репозиторий и обновим список пакетов, выполнив команду sudo add-apt-repository ppa:deadsnakes/ppa
и sudo apt-get update
.
После этого установим postgresql-contrib для работы с базой данных. Введите команду sudo apt-get install postgresql postgresql-contrib
, чтобы завершить установку. Также добавим поддержку memcached для кэширования данных. Это поможет существенно ускорить работу вашего приложения, снижая нагрузку на базу данных.
Теперь создайте новый проект с помощью команды django-admin startproject myproject
и перейдите в его директорию cd home/usermyprojectdir
. Не забудьте создать виртуальное окружение для изоляции зависимостей вашего проекта: python3 -m venv newenv
. Активируйте его командой source newenv/bin/activate
. Далее, установим все необходимые пакеты из файла requirements.txt
, используя команду pip install -r requirements.txt
.
Теперь необходимо настроить ваш сервер для работы с доменом. Введите команду sudo certonly --dry-run --agree-tos --email youremail@domain.com -d server_domain_or_ip
, чтобы получить SSL-сертификат от Let’s Encrypt. Это обеспечит безопасность передачи данных между вашим сервером и пользователями.
Для управления статическими файлами вашего проекта, создайте директорию static_dir
и настройте соответствующий location
в конфигурационном файле вашего веб-сервера. Это позволит серверу эффективно обслуживать статические ресурсы, такие как изображения, CSS и JavaScript файлы, без дополнительной нагрузки на воркеры.
Настройка воркеров для обработки запросов к вашему приложению также требует внимания. Используйте unitdescriptiongunicorn
и wantedbymulti-usertarget
для настройки службы, которая будет запускать ваш проект. Убедитесь, что конфигурационные файлы корректно настроены, и протестируйте работу вашего приложения в различных окружениях, чтобы исключить возможные ошибки.
Не забудьте создать суперпользователя для управления вашим приложением, выполнив команду createsuperuser
. Это позволит вам администрировать проект через административную панель и управлять пользователями, контентом и настройками.
Соблюдая все эти шаги, вы сможете уверенно запустить и поддерживать ваш веб-проект на высоком уровне. Следуйте нашим рекомендациям и наслаждайтесь стабильной и быстрой работой вашего приложения!
- Настройка Nginx для Django проекта
- Установка и базовая конфигурация Nginx
- Шаги по установке Nginx на сервер
- Примеры базовой конфигурации для Django
- Использование Gunicorn с Django
- Настройка и запуск Gunicorn для Django приложения
- Установка Gunicorn и его зависимостей
- Конфигурация и запуск Gunicorn для Django проекта
- Шаг 1: Установка Gunicorn и необходимые зависимости
- Шаг 2: Создание systemd unit файла
- Шаг 3: Настройка виртуального окружения
- Шаг 4: Запуск и проверка работы Gunicorn
- Шаг 5: Проверка состояния сервиса
- Шаг 6: Дополнительные настройки
- Заключение
- Вопрос-ответ:
- Какова роль Nginx в настройке Django проекта с использованием Gunicorn?
- Какие ошибки часто возникают при настройке Nginx и Gunicorn для Django проекта и как их исправить?
- Видео:
- Как запустить Docker? Django, Nginx, PostgreSQL и gunicorn в продакшене
Настройка Nginx для Django проекта
Для начала убедитесь, что ваш сервер работает и все необходимые компоненты установлены. Мы будем использовать apt-get для установки пакетов. Введите команду:
sudo apt-get update
sudo apt-get install nginx
Создайте файл конфигурации в каталоге /etc/nginx/sites-available/. Назовем его myproject. В этом файле опишем основные параметры и пути к папкам вашего проекта:
server {
listen 80;
server_name server_domain_or_ip;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/user/myprojectdir;
}
location /media/ {
root /home/user/myprojectdir;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/user/myprojectdir/rungunicorn.sock;
}
}
Создайте символьную ссылку на этот файл в каталоге /etc/nginx/sites-enabled/:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
Теперь проверим настройки на наличие ошибок и перезапустим веб-сервер:
sudo nginx -t
sudo systemctl restart nginx
Для обеспечения безопасности и работы транзакций, используйте систему аутентификации. В конфигурации settings.py вашего проекта найдите и настройте следующие параметры:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
Теперь давайте перейдем к настройке сокета для связи с Gunicorn. В каталоге вашего проекта создайте файл unit description для Gunicorn:
[Unit]
Description=gunicorn daemon for myproject
After=network.target
[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/myprojectdir
ExecStart=/home/user/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/user/myprojectdir/rungunicorn.sock myprojectwsgi:application
[Install]
WantedBy=multi-user.target
Активируем и запускаем сервис с помощью systemd:
sudo systemctl start myproject
sudo systemctl enable myproject
Не забудьте проверить работоспособность вашего приложения. Перейдите по адресу вашего сервера в браузере и убедитесь, что все работает корректно. Тестирование можно провести командой —dry-run, чтобы удостовериться в отсутствии ошибок.
Если вы следовали всем инструкциям, ваш проект должен быть доступен по URL: http://wwwpythonworldclub. В случае возникновения ошибок, проверьте журналы и настройки файлов конфигурации. Удачи в ваших начинаниях!
Установка и базовая конфигурация Nginx
В данном разделе мы рассмотрим, как провести начальную установку и настроить основной функционал веб-сервера для работы с вашим приложением. Мы подробно разберём необходимые шаги, чтобы ваш проект работал эффективно и безопасно в производственном окружении.
Для начала, необходимо обновить пакетный менеджер вашего сервера, чтобы убедиться, что все имеющиеся библиотеки актуальны. Введите команду:
sudo apt update
Далее, установите веб-сервер, воспользовавшись следующей командой:
sudo apt install nginx
После завершения установки убедитесь, что сервис запущен и работает. Для этого введите:
sudo systemctl status nginx
Теперь перейдём к базовой конфигурации. Создаём новый конфигурационный файл в каталоге /etc/nginx/sites-available/
:
sudo nano /etc/nginx/sites-available/myproject
В этом файле пропишем основные параметры, которые обеспечат корректную работу вашего приложения. Вот пример минимальной конфигурации:
server {
listen 80;
server_name www.pythonworldclub.com pythonworldclub.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
alias /home/user/myprojectdir/static/;
}
location /media/ {
alias /home/user/myprojectdir/media/;
}
}
После сохранения файла, создайте символическую ссылку в каталоге /etc/nginx/sites-enabled/
:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
Удалите конфигурацию по умолчанию, чтобы избежать конфликтов:
sudo rm /etc/nginx/sites-enabled/default
Проведите тестирование конфигурации, чтобы убедиться в отсутствии ошибок:
sudo nginx -t
Если ошибок нет, перезапустите сервис для применения изменений:
sudo systemctl restart nginx
Теперь веб-сервер настроен для обработки запросов к вашему приложению. В дальнейшем вы сможете более тонко настроить параметры безопасности, добавить SSL/TLS сертификаты, оптимизировать работу с помощью кеширования и других методов. На данном этапе ваш проект должен быть доступен по указанному доменному имени.
Шаги по установке Nginx на сервер
В данном разделе мы рассмотрим, как правильно установить и настроить Nginx на сервере, чтобы обеспечить стабильную и быструю работу вашего веб-приложения. Следуя этим шагам, вы сможете быстро интегрировать Nginx в ваш проект, минимизируя возможные ошибки и недоразумения.
Первым делом необходимо обновить список пакетов на вашем сервере. Для этого используйте команду:
sudo apt-get update
Теперь установим необходимые библиотеки и сам сервер с помощью следующей команды:
sudo apt-get install nginx
После успешной установки запустите сервер командой:
sudo systemctl start nginx
Чтобы сервер автоматически запускался при старте системы, выполните команду:
sudo systemctl enable nginx
Для проверки корректной работы сервера, откройте браузер и введите ваш ip-адрес. Если всё сделано правильно, вы увидите стартовую страницу Nginx.
Теперь давайте настроим конфигурационный файл для вашего проекта. Откройте файл конфигурации, используя любой текстовый редактор:
sudo nano /etc/nginx/sites-available/default
Добавьте следующий блок конфигурации в файл, заменив static_dir и media на пути к вашим статическим и медиафайлам:
server {
listen 80;
server_name your_domain_or_ip;bashCopy codelocation / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
alias /home/user/myprojectdir/static_dir;
}
location /media/ {
alias /home/user/myprojectdir/media;
}
location /rungunicornsock {
include proxy_params;
proxy_pass http://unix:/home/user/myprojectdir/gunicorn.sock;
}
}
Сохраните изменения и закройте редактор. Проверьте корректность конфигурации:
sudo nginx -t
Если тестирование прошло успешно, перезапустите сервер для применения изменений:
sudo systemctl restart nginx
Теперь ваш сервер настроен и готов к работе. Для дополнительной безопасности и улучшения производительности вы можете настроить использование SSL сертификатов и кеширование с помощью letsencrypt и memcached.
Следуя данному плану, вы сможете успешно интегрировать сервер в ваше веб-приложение, обеспечивая высокую доступность и производительность вашего проекта.
Примеры базовой конфигурации для Django
Первым шагом будет создание виртуальной среды и установка необходимых пакетов. Введите команду:
sudo apt-get update
sudo apt-get install python3-venv python3-pip
python3 -m venv myprojectenv
source myprojectenv/bin/activate
pip install django gunicorn
После установки всех пакетов создайте новый Django проект:
django-admin startproject myproject
Перейдите в папку проекта и создайте приложение:
cd myproject
python manage.py startapp mainappname
В файле myproject/settings.py задайте необходимые параметры. Например, добавьте ваше доменное имя в ALLOWED_HOSTS
:
ALLOWED_HOSTS = ['server_domain_or_ip']
Для обеспечения безопасности вашего приложения создайте файл myproject/robotstxt и добавьте туда следующие строки:
User-agent: *
Disallow: /
Теперь создадим файлы, необходимые для работы с сервисом. Введите команды для создания папок и файлов:
sudo mkdir -p /etc/systemd/system/gunicorn.socket
sudo touch /etc/systemd/system/gunicorn.socket
Откройте файл /etc/systemd/system/gunicorn.socket и добавьте следующий контент:
[Unit]
Description=gunicorn socket[Socket]
ListenStream=/run/gunicorn.sock[Install]
WantedBy=multi-user.target
Создайте файл /etc/systemd/system/gunicorn.service и добавьте следующий контент:
[Unit]
Description=gunicorn daemon
After=network.target[Service]
User=your_user
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock myproject.wsgi[Install]
WantedBy=multi-user.target
Активируйте и запустите сервисы командой:
sudo systemctl start gunicorn.socket
sudo systemctl enable gunicorn.socket
Для тестирования сервиса и проверки логов воспользуйтесь командой:
sudo systemctl status gunicorn
sudo journalctl -u gunicorn
Теперь ваш проект запущен и работает корректно. В дальнейшем, для управления сервисами, вы можете использовать следующие команды:
sudo systemctl stop gunicorn
sudo systemctl restart gunicorn
Эти команды помогут вам гибко управлять вашим проектом в любой момент времени, обеспечивая стабильную работу и доступность вашего приложения.
Использование Gunicorn с Django
Для начала создайте новый каталог в вашем домашнем каталоге, который будет содержать все файлы проекта:
mkdir -p ~/myprojectdir
Перейдите в папку проекта и создайте виртуальную среду Python:
cd ~/myprojectdir
python3 -m venv venv
Активируйте виртуальную среду:
source venv/bin/activate
Установите необходимые зависимости:
pip install django gunicorn
После завершения установки зависимостей создайте новый Django проект и перейдите в его каталог:
django-admin startproject myproject .
cd myproject
Теперь создаем конфигурационный файл для Gunicorn. В корне проекта создайте файл gunicorn_config.py
со следующим содержимым:
bind = 'unix:/home/user/myprojectdir/gunicorn.sock'
workers = 3
Настройте файл myproject/wsgi.py
так, чтобы он указывал на ваш проект:
import os
from django.core.wsgi import get_wsgi_applicationos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()
Создаем unit-файл для systemd. Найдите файл /etc/systemd/system/gunicorn.service
и добавьте следующий код:
[Unit]
Description=gunicorn daemon for myproject
After=network.target[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/myprojectdir
ExecStart=/home/user/myprojectdir/venv/bin/gunicorn --workers 3 --bind unix:/home/user/myprojectdir/gunicorn.sock myproject.wsgi[Install]
WantedBy=multi-user.target
Активируйте и запустите сервис:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
Проверьте статус сервиса, чтобы убедиться, что он работает корректно:
sudo systemctl status gunicorn
Теперь можно настроить и протестировать работу вашего веб-сайта. Введите команду для миграции базы данных:
python manage.py migrate
После этого запустите сервер разработки и убедитесь, что ваш сайт работает без ошибок:
python manage.py runserver
В процессе разработки и тестирования могут возникать различные ошибки, которые можно отслеживать в логах. Для просмотра логов используйте следующую команду:
tail -f /var/log/syslog | grep gunicorn
Теперь ваш проект настроен и работает через Gunicorn, что обеспечивает высокую производительность и надежность. Виртуальная среда позволяет легко управлять зависимостями, а systemd обеспечивает автоматический перезапуск сервера в случае сбоев. Теперь вы можете пользоваться всеми преимуществами, которые предлагает это решение для вашего проекта.
Настройка и запуск Gunicorn для Django приложения
Первым шагом создайте новое виртуальное окружение для вашего проекта. Перейдите в корневую папку вашего проекта и выполните команду:
python3 -m venv newenv
Активируйте виртуальное окружение:
source newenv/bin/activate
Установите необходимые пакеты, включая сервер и зависимости вашего проекта:
pip install gunicorn django psycopg2-binary
Перейдите в папку вашего проекта и создайте новый файл службы systemd для управления процессом. Откройте файл /etc/systemd/system/gunicorn.service
и добавьте следующий конфигурационный код:
[Unit]
Description=gunicorn daemon
After=network.target[Service]
User=root
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/project/newenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/path/to/your/project/gunicorn.sock projectname.wsgi[Install]
WantedBy=multi-user.target
Замените /path/to/your/project
и projectname
на соответствующие пути и название вашего проекта. Сохраните изменения и выполните команду для перезагрузки демонов:
sudo systemctl daemon-reload
Запустите службу с помощью команды:
sudo systemctl start gunicorn
Чтобы служба автоматически запускалась при перезагрузке сервера, выполните команду:
sudo systemctl enable gunicorn
Теперь ваш сервер должен быть запущен и готов к обработке запросов. Проверьте его статус командой:
sudo systemctl status gunicorn
Для корректной работы, не забудьте настроить параметры в вашем settings.py
файле. Убедитесь, что в списке ALLOWED_HOSTS
указаны все домены, с которых планируется доступ к вашему сайту.
Также важно правильно настроить пути к статическим и медиа файлам:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_dir')MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
На этом этапе, ваше приложение готово к приему запросов и обработке транзакций. Используйте команду sudo systemctl stop gunicorn
, чтобы остановить сервис при необходимости. Убедитесь, что все изменения сохранены, и перезапустите сервис.
Эти шаги помогут вам успешно настроить и запустить приложение, обеспечивая стабильную работу и быструю реакцию на запросы пользователей.
Установка Gunicorn и его зависимостей
Для обеспечения корректной работы веб-приложения в окружении Python необходимо выполнить ряд действий, которые включают установку определенных библиотек и пакетов. Эти шаги обеспечивают возможность запуска приложения на сервере и связи с базой данных, а также помогают организовать корректную обработку запросов и маршрутизацию.
Для начала, убедитесь, что у вас установлена последняя версия pip. Командой python -m pip install --upgrade pip
обновите менеджер пакетов.
Далее, из корневого каталога вашего проекта выполните команду установки необходимых библиотек:
pip install gunicorn psycopg2-binary
Установка gunicorn завершена, но для работы с базой данных PostgreSQL потребуется еще пакет psycopg2-binary. Этот пакет обеспечивает взаимодействие Python-приложения с базой данных.
Для удобства управления проектом создайте виртуальное окружение. Выполните следующие команды:
python -m venv myprojectenv
source myprojectenv/bin/activate
Теперь активировано виртуальное окружение, в котором мы будем работать. Далее, из корневой папки вашего проекта выполните команду для установки библиотек в окружении:
pip install -r requirements.txt
Убедитесь, что файл requirements.txt содержит необходимые зависимости:
gunicorn
psycopg2-binary
Следующий шаг – создать конфигурацию для запуска сервиса на сервере. Создайте файл /etc/systemd/system/gunicorn.service
с содержимым:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/myprojectdir
ExecStart=/home/user/myprojectenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/user/myprojectdir/gunicorn.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
В этом файле замените user на имя вашего пользователя и myprojectdir на директорию вашего проекта. Созданный файл обеспечивает запуск gunicorn в фоновом режиме и связывает его с сокетом gunicorn.sock.
Чтобы активировать новый сервис и запустить его, выполните команды:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
Сервис должен быть активирован и запущен, что можно проверить командой:
sudo systemctl status gunicorn
Теперь ваш веб-сайт готов к тестированию и дальнейшей настройке. Убедитесь, что все работает корректно, используя ваше доменное имя или IP-адрес сервера.
В процессе установки и настройки убедитесь, что корректно работают все компоненты, включая маршрутизацию URL, обработку статических файлов и взаимодействие с базой данных PostgreSQL.
Конфигурация и запуск Gunicorn для Django проекта
Шаг 1: Установка Gunicorn и необходимые зависимости
Для начала установим Gunicorn и необходимые пакеты. Выполните следующие команды:
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install gunicorn
Если ваш проект использует PostgreSQL, установите также следующие пакеты:
sudo apt-get install postgresql postgresql-contrib
Шаг 2: Создание systemd unit файла
Создадим unit файл для systemd, чтобы управлять процессом Gunicorn. Откройте новый файл с помощью nano или любого другого текстового редактора:
sudo nano /etc/systemd/system/gunicorn.service
Вставьте в файл следующую конфигурацию, заменив myprojectdir
, user
, и group
на соответствующие значения вашего проекта:
[Unit] Description=gunicorn daemon After=network.target [Service] User=user Group=group WorkingDirectory=/home/user/myprojectdir ExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/home/user/myprojectdir/myproject.sock myproject.wsgi:application [Install] WantedBy=multi-user.target
Этот файл задает параметры для запуска Gunicorn: количество воркеров, путь к сокету и точка входа вашего проекта.
Шаг 3: Настройка виртуального окружения
Чтобы наш проект работал в изоляции, создадим виртуальное окружение и установим все необходимые зависимости:
cd /home/user/myprojectdir python3 -m venv venv source venv/bin/activate pip install django gunicorn psycopg2
Не забудьте настроить параметры базы данных в файле settings.py
вашего проекта:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'database_name', 'USER': 'user', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } }
Шаг 4: Запуск и проверка работы Gunicorn
Теперь можно запустить Gunicorn и проверить его работу. Введите следующую команду:
sudo systemctl start gunicorn sudo systemctl enable gunicorn
Эти команды запускают Gunicorn и задают его автоматический запуск при перезагрузке сервера.
Шаг 5: Проверка состояния сервиса
Для проверки состояния сервиса используйте следующую команду:
sudo systemctl status gunicorn
Если все настроено правильно, вы увидите, что Gunicorn работает без ошибок.
Шаг 6: Дополнительные настройки
Для улучшения работы вашего веб-сайта вы можете настроить автоматическое обновление статических файлов. Добавьте следующие строки в конфигурацию Gunicorn:
ExecStartPre=/bin/bash -c 'source /home/user/myprojectdir/venv/bin/activate && /home/user/myprojectdir/manage.py collectstatic --noinput'
Теперь Gunicorn будет автоматически обновлять статические файлы при каждом запуске.
Заключение
В этой статье мы рассмотрели основные шаги по настройке и запуску Gunicorn в окружении Django проекта. Следуя этим рекомендациям, вы сможете создать стабильную и эффективную инфраструктуру для вашего веб-сайта.
Вопрос-ответ:
Какова роль Nginx в настройке Django проекта с использованием Gunicorn?
Nginx выполняет роль обратного прокси-сервера для вашего Django приложения, работающего на Gunicorn. Он обрабатывает все входящие HTTP-запросы и пересылает их на Gunicorn. Кроме того, Nginx может выполнять кэширование, балансировку нагрузки и служить для обслуживания статических и медиа файлов, что уменьшает нагрузку на основное приложение. Это улучшает производительность и безопасность вашего веб-сайта.
Какие ошибки часто возникают при настройке Nginx и Gunicorn для Django проекта и как их исправить?
Частые ошибки при настройке Nginx и Gunicorn для Django проекта включают:Ошибка 502 Bad Gateway: Обычно возникает, если Gunicorn не работает или работает на неправильном порту. Убедитесь, что Gunicorn запущен и прослушивает правильный порт, указанный в конфигурации Nginx.Ошибка разрешений: Nginx может не иметь доступа к сокету или файлам приложения. Убедитесь, что права доступа настроены правильно, и пользователь Nginx имеет доступ к необходимым файлам и директориям.Неверные пути к статическим файлам: Если статические файлы не отображаются, проверьте пути, указанные в конфигурации Nginx для статических и медиа файлов. Убедитесь, что они соответствуют реальным путям на сервере.Проблемы с конфигурацией systemd: Если Gunicorn не запускается при старте системы, проверьте конфигурацию файла сервиса systemd. Убедитесь, что все пути и параметры указаны правильно, и перезапустите конфигурацию systemd.Для исправления этих ошибок внимательно проверяйте журналы Nginx и Gunicorn, а также логи systemd. Это поможет выявить и устранить конкретные проблемы.