Установка Django на VPS с использованием Nginx и Gunicorn

(5.0 | 3 голоса)

В этой статье мы рассмотрим, как установить Django на VPS с использованием Nginx в качестве веб-сервера и Gunicorn в качестве WSGI-сервера.

Шаг 1: Подготовка сервера

Обновите и установите необходимые пакеты:

Войдите на ваш VPS через SSH и выполните:

sudo apt update
sudo apt upgrade
sudo apt install python3-pip python3-dev libpq-dev nginx curl

python3-pip - пакетный менеджер для Python.

python3-dev - заголовочные файлы для Python, необходимые для компиляции пакетов.

libpq-dev - библиотека для работы с PostgreSQL (если вы планируете использовать его).

nginx - веб-сервер.

curl - утилита для работы с URL.

Шаг 2: Установка и настройка виртуального окружения

Создайте новое виртуальное окружение для вашего проекта Django:

sudo pip3 install virtualenv
mkdir ~/myprojectdir
cd ~/myprojectdir
virtualenv myprojectenv

Активируйте виртуальное окружение:

source myprojectenv/bin/activate

Установите Django:

pip install django gunicorn psycopg2  # psycopg2, если используете PostgreSQL

Шаг 3: Создание проекта Django

Создайте новый проект Django:

django-admin startproject myproject .

Настройте базу данных:

Отредактируйте файл settings.py вашего проекта и настройте параметры подключения к базе данных (если используете PostgreSQL или другую БД).

Шаг 4: Запуск Gunicorn

Запустите Gunicorn:

Проверьте, что все работает, запустив Gunicorn:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application

Теперь ваше приложение должно работать на http://<ваш_IP>:8000.

Шаг 5: Настройка Nginx

Создайте конфигурационный файл для вашего проекта в Nginx:

Создайте файл /etc/nginx/sites-available/myproject и добавьте в него следующий код:

server {
    listen 80;
    server_name your_domain_or_IP;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /path/to/your/static/files;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/your_user/myprojectdir/myproject.sock;
    }
}

Замените your_domain_or_IP на ваш домен или IP-адрес, а your_user на ваше имя пользователя. Также убедитесь, что путь к статическим файлам правильный.

Создайте символическую ссылку:

Включите конфигурацию вашего сайта, создав символическую ссылку на sites-enabled:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

Проверьте конфигурацию Nginx:

sudo nginx -t

Перезапустите Nginx:

sudo systemctl restart nginx

Шаг 6: Настройка статических файлов

Соберите статические файлы:

Чтобы собрать статические файлы для Django, выполните:

python manage.py collectstatic

Шаг 7: Настройка Gunicorn как службы

Создайте файл службы для Gunicorn:

Создайте файл /etc/systemd/system/gunicorn.service и добавьте в него следующий код:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=your_user
Group=www-data
WorkingDirectory=/home/your_user/myprojectdir
Environment="PATH=/home/your_user/myprojectdir/myprojectenv/bin"
ExecStart=/home/your_user/myprojectdir/myprojectenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/your_user/myprojectdir/myproject.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

Запустите и активируйте службу Gunicorn:

sudo systemctl start gunicorn
sudo systemctl enable gunicorn

Шаг 8: Завершение

Теперь ваше приложение Django должно работать на вашем VPS с использованием Nginx и Gunicorn. Вы можете открыть браузер и перейти на ваш домен или IP-адрес, чтобы увидеть его в действии. Если у вас есть какие-либо вопросы или проблемы, не стесняйтесь спрашивать!

Помог ли вам этот материал
Войдите, чтобы принять участие в опросе
да 1 голосов (100%)
нет 0 голосов (0%)
Всего голосов: 1

Комментарии

Пока нет комментариев. Будьте первым!