Убедитесь, что у вас есть доступ к Ubuntu-серверу (например, VPS). Подключитесь по SSH:
ssh username@your_server_ip
Обновите систему:
sudo apt update && sudo apt upgrade -y
Установка зависимостей
sudo apt install python3-pip python3-venv nginx git -y
Создайте директорию проекта:
mkdir ~/myproject && cd ~/myproject
Настройка виртуального окружения и Django
python3 -m venv venv
source venv/bin/activate
pip install django gunicorn
Склонируйте свой проект (или создайте новый):
git clone https://github.com/ваш-проект.git .
Сделайте миграции и соберите статику:
python manage.py migrate
python manage.py collectstatic
Убедитесь, что в settings.py
:
ALLOWED_HOSTS = ['your_domain.com', 'your_server_ip']
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
Настройка Gunicorn (WSGI)
Запустите Gunicorn для теста:
gunicorn --bind 127.0.0.1:8000 myproject.wsgi:application
Если работает — создадим systemd-сервис:
sudo nano /etc/systemd/system/myproject.service
[Unit]
Description=Gunicorn for Django Project
After=network.target
[Service]
User=your_user
Group=www-data
WorkingDirectory=/home/your_user/myproject
ExecStart=/home/your_user/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/your_user/myproject/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
Запустите и включите Gunicorn:
sudo systemctl daemon-reexec
sudo systemctl start myproject
sudo systemctl enable myproject
Настройка Nginx
Создайте файл конфигурации:
sudo nano /etc/nginx/sites-available/myproject
server {
listen 80;
server_name your_domain.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/your_user/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/your_user/myproject/myproject.sock;
}
}
Активируйте сайт:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
Установка HTTPS через Certbot
Установите:
sudo apt install certbot python3-certbot-nginx -y
Получите сертификат:
sudo certbot --nginx -d your_domain.com
Проверьте автоматическое обновление:
sudo certbot renew --dry-run
Теперь ваше Django-приложение доступно по HTTPS через Nginx и работает через Gunicorn.
Автор: Евгений Морковин
0 комментариев
Оставьте комментарий
Комментарии