Публікація 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. Налаштування бази даних:

Переконайтеся, що ваша база даних налаштована для виробництва. Якщо ви використовуєте 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/ {
або /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 для Django проект
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. Публікація на сервер. (1)

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