Публикация Django-приложения на сервере

Прокрутить вниз

Публикация Django-приложения на сервере включает в себя несколько шагов, начиная с подготовки самого приложения и заканчивая его настройкой на сервере для production. Вот пошаговое руководство по развертыванию Django-приложения.

1. Подготовка приложения

Убедитесь, что у вас настроено Django-приложение и установлены все необходимые зависимости. Если проект еще не создан, выполните следующие шаги:

1. Установите Django:
pip install django

2. Создайте проект:
django-admin startproject myproject

3. Перейдите в директорию проекта:
cd myproject

4. Создайте файл `requirements.txt`:
pip freeze > requirements.txt

2. Настройка приложения для production

1. Настройки проекта:

В файле `settings.py` измените следующие параметры:

  • DEBUG: Убедитесь, что в production режиме `DEBUG = False`.
  • ALLOWED_HOSTS: Укажите список доменных имен или IP-адресов, на которых будет доступно ваше приложение.
  • STATIC_ROOT: Укажите путь для сбора статических файлов:

    STATIC_ROOT = os.path.join(BASE_DIR, ‘static/’)

2. Сбор статических файлов:

Выполните команду для сбора всех статических файлов в одно место:

python manage.py collectstatic

3. Настройка базы данных:

Убедитесь, что ваша база данных настроена для production. Если используете PostgreSQL:

  • Установите драйвер:
    pip install psycopg2-binary
  • Обновите `DATABASES` в `settings.py`:

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql’,
‘NAME’: ‘your_db_name’,
‘USER’: ‘your_db_user’,
‘PASSWORD’: ‘your_db_password’,
‘HOST’: ‘localhost’,
‘PORT’: ‘5432’,
}
}

3. Развертывание на сервере

1. Установка Gunicorn

Gunicorn — это WSGI-сервер, который будет обслуживать ваше Django-приложение.

pip install gunicorn

2. Запуск приложения с Gunicorn

Перейдите в директорию проекта и выполните:

gunicorn —workers 3 myproject.wsgi:application

3. Настройка NGINX

NGINX будет выступать в качестве обратного прокси-сервера, перенаправляя запросы на Gunicorn.

1. Установите NGINX, если он еще не установлен:

sudo apt update
sudo apt install nginx

2. Настройте конфигурационный файл для вашего сайта. Создайте файл в `/etc/nginx/sites-available/myproject`:

server {
listen 80;
server_name your_domain_or_IP;

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 /path/to/your/project/static/;
}
}

3. Активируйте конфигурацию и перезапустите NGINX:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

4. Настройка Systemd для автоматического запуска Gunicorn

Создайте `systemd` сервисный файл, чтобы Gunicorn автоматически запускался при старте системы:

1. Создайте файл `/etc/systemd/system/gunicorn.service`:

[Unit]
Description=gunicorn daemon for Django project
After=network.target

[Service]
User=youruser
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/venv/bin/gunicorn —workers 3 —bind unix:/path/to/your/project/myproject.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

2. Запустите и активируйте сервис:

sudo systemctl start gunicorn
sudo systemctl enable gunicorn

5. Тестирование и завершение

После настройки убедитесь, что все работает корректно. Вы можете проверить логи NGINX и Gunicorn для отладки возможных проблем.

Тест Python. Публикация на сервере.

Таким образом, ваше Django-приложение будет успешно развернуто и доступно для пользователей.