sudo apt update
sudo apt upgrade
Устанавливаем nginx
sudo apt install nginx
Устанавливаем gunicorn
sudo apt install gunicorn
Устанавливаем python 3.9 + venv
sudo apt install python3.9 python3.9-venv
С подготовкой компонентов закончили, переходим в установке и настройке
Переходим в директорию /home
cd /home
Создаем виртуальное окружение
python3.9 -m venv venv
Переходим в него и устанавливаем все нужные зависимости
source venv/bin/activate
pip install gunicorn
pip install django
git clone <url>
Начнем с nginx, создадим наш конфиг с проектом
Очень важно не запутаться с путями, читайте внимательно чтобы не пропустить ничего
Для начала создадим наш файл конфигурации nginx
sudo nano /etc/nginx/sites-available/my_django_project
Заходим в директорию где у нас находится manage.py и пишем там:
pwd
Получаем: /home/mysite
и записываем туда (не забываем указать your_ip):
server {
listen 80;
server_name your_ip;
location /static/ {
root /home/mysite;
}
location /media/ {
root /home/mysite;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
Переносим конфигурацию в рабочее пространство
sudo ln -s /etc/nginx/sites-available/my_django_project /etc/nginx/sites-enabled/
перезагружаем nginx
service nginx restart
Nginx настроен.
Идем в каталог /etc/systemd/system/
cd /etc/systemd/system/
Создаем файл gunicorn.service
nano gunicorn.service
И записываем туда:
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=root
WorkingDirectory=/home/mysite
ExecStart=/home/venv/bin/gunicorn --workers 5 --bind unix:/run/gunicorn.sock your_project_wsgi.wsgi:application
[Install]
WantedBy=multi-user.target
В WorkingDirectory записываем путь к manage.py
В ExecStart записываем виртуальное окружение с gunicorn
(!) И не забываем указать your_project_wsgi, wsgi называеться так же как вы назвали проект, или же можно найти в settings в переменной: WSGI_APPLICATION
Сохраняем и выходим, и создаем еще один файл в той же директории под названием gunicorn.socket
nano gunicorn.socket
И записываем туда
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
Сохраняем и закрываем, менять ничего не нужно
Теперь нам нужно запустить сервисы gunicorn
sudo systemctl enable gunicorn
sudo systemctl start gunicorn
service gunicorn restart
После всех манипуляций у вас должен заработать проект, если у вас не получилось, можно написать мне в телеграмм https://t.me/MRXlllll