Настройка приложения Django для продакшн-окружения включает в себя несколько важных шагов, направленных на оптимизацию производительности, безопасности и стабильности приложения. В этой статье мы рассмотрим основные моменты настройки Django 4 для продакшн-окружения.
Настройка параметров безопасности
В первую очередь, убедитесь, что ваш DEBUG
выключен, и настройте параметр ALLOWED_HOSTS
в файле settings.py
:
DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com']
Настройка статических и медиа-файлов
Для обработки статических и медиа-файлов на продакшн-сервере, настройте следующие параметры в settings.py
:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mediafiles')
Не забудьте собрать статические файлы, используя команду collectstatic
:
python manage.py collectstatic
Настройка базы данных
В продакшн-окружении рекомендуется использовать мощную и надежную СУБД, такую как PostgreSQL. Установите необходимые пакеты и настройте базу данных в settings.py
:
pip install psycopg2
Обновите конфигурацию базы данных в settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
Настройка кэширования
Кэширование может значительно улучшить производительность вашего приложения Django. Рассмотрим настройку кэширования с использованием Redis:
pip install django-redis
Добавьте настройки кэширования в settings.py
:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
Настройка веб-сервера
Выберите подходящий веб-сервер для развертывания вашего приложения. Рассмотрим настройку сервера с использованием Gunicorn и Nginx.
pip install gunicorn
Запустите Gunicorn:
gunicorn myproject.wsgi:application --bind 0.0.0.0:8000
Установите и настройте Nginx в качестве обратного прокси-сервера. Создайте файл конфигурации Nginx для вашего приложения:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://0.0.0.0: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 /path/to/your/staticfiles/;
}
location /media/ {
alias /path/to/your/mediafiles/;
}
}
Перезапустите Nginx для применения изменений.
Настройка HTTPS
Подключение SSL-сертификата к вашему домену является крайне важным для безопасности и доверия пользователей. Рассмотрим получение и настройку бесплатного SSL-сертификата от Let’s Encrypt с использованием Certbot.
Установите Certbot и плагин Nginx:
sudo apt install certbot python3-certbot-nginx
Получите SSL-сертификат и настройте его с помощью Certbot:
sudo certbot --nginx -d yourdomain.com
Теперь ваше приложение Django готово к работе в продакшн-окружении. Вы успешно настроили безопасность, статические и медиа-файлы, базу данных, кэширование, веб-сервер и HTTPS.