Подготовка сервера и установка необходимого ПО
Перед началом убедитесь, что у вас есть доступ к VPS с операционной системой Linux (например, Ubuntu 20.04 или более новая версия). Обновите систему командой:
sudo apt update && sudo apt upgrade -y
Установите Python, pip и виртуальное окружение:
sudo apt install python3 python3-pip python3-venv -y
Создание виртуального окружения и установка зависимостей
- Перейдите в директорию проекта или создайте новую:
mkdir ~/my_django_project && cd ~/my_django_project
- Создайте виртуальное окружение:
python3 -m venv venv
- Активируйте виртуальное окружение:
source venv/bin/activate
- Установите Django и необходимые библиотеки:
pip install django gunicorn
Настройка Django проекта
Создайте новый проект или скопируйте существующий. Для создания нового выполните команду:
django-admin startproject myproject .
Обновите файл settings.py для разрешения внешних подключений:
ALLOWED_HOSTS = ['ваш_IP_или_домен']
Выполните миграции и создайте администратора:
python manage.py migrate
python manage.py createsuperuser
Настройка Gunicorn для запуска Django
Создайте системный сервис для автоматического запуска Gunicorn:
sudo nano /etc/systemd/system/gunicorn.service
Добавьте в файл конфигурацию:
[Unit]
Description=Gunicorn daemon
After=network.target
[Service]
User=ваш_пользователь
Group=www-data
WorkingDirectory=/home/ваш_пользователь/my_django_project
ExecStart=/home/ваш_пользователь/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/ваш_пользователь/my_django_project/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
Активируйте и запустите службу:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
Настройка Nginx в качестве обратного прокси
Стандартный конфигурационный файл создайте по пути:
sudo nano /etc/nginx/sites-available/myproject
Добавьте следующий блок:
server {
listen 80;
server_name ваш_домен или_IP;
location = /favicon.ico { access_log off; log_not_found off; }
location / {
include proxy_params;
proxy_pass http://unix:/home/ваш_пользователь/my_django_project/myproject.sock;
}
}
Создайте символическую ссылку и перезапустите Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
|