Здравствуйте!Хочу представить вам пошаговую инструкцию по деплою django проекта. Сразу скажу, что используя мою краткую инструкцию вы не поймете механику развертывания. По сути, это просто список команд для деплоя. Тут не будет никаких подробностей касательно работы UWSGI, NGINX и самого Django. Я просто помогу быстро добраться до цели, а цель у нас одна - задеплоить уже наконец этот **** проект! (Инструкция тестировалась на VPS Ubuntu 20.04 с Django 3.2.8, python3.8, NGINX 1.18.0, UWSGI 2.0.20) Заходим в консоль линукс сервера и вперед! sudo apt updatesudo apt upgradesudo apt-get install nginx uwsgisudo apt-get install uwsgi-plugin-python3 Переходим в директорию /var  cd /var Создаем себе внутри папку для дальнейшей работы mkdir workcd work Создаем папку под статику и предоставляем пользователю www-data права на неё. (UWSGI и NGINX будут работать от лица www-data) mkdir staticchown www-data /var/work/static Проверим версию пайтона, установим пакет для вирт. окружения и создадим егоpython3 -Vsudo apt install python3.8-venvpython3 -m venv venv Активируем окружение . ./venv/bin/activate pip install django (и другие или загрузите их позже из requirements.txt) git clone https://github.com/nick_name/project.git (или переместите в текущую папку ваш проект любым другим способом) (В инструкции я использую проект со стандартной архитектурой вида: projectname/	...	manage.py	projectname/		...		settings.py		wsgi.py	... ) Переходим в файл settings.py вашего проекта джанго и редактируем его. Необходимо добавить ip вашего сервера в ALLOWED_HOSTS должно получиться что-то вроде ['1.1.1.1', '127.0.0.1']добавить STATIC_ROOT = '/var/work/static' Вернитесь в папку с manage.pycd /var/work/имя вашего проекта Далее подготовим сам Django проект. Проведем миграции и соберем статику в папку, которую мы ранее создали в work. python3 manage.py makemigrations python3 manage.py migrate python3 manage.py collectstatic python3 manage.py runserver  Если есть ошибка в проекте - устранить, если не хватает библиотек - установить через pip install Если ошибок не возникло - ваш Django проект в порядке, если нет, то исправляйте ошибки в нем. Советую сверить ту ли версию Django вы поставили себе на сервер. Близимся к концу. Виртуальное окружение можно выключить. Сделаем это командой: deactivate Далее откроем файл nginx.conf и проверим в нем параметр user, он должен быть www-data. user www-data; nano /etc/nginx/nginx.conf далее создадим и заполним конфиг my_app (для nginx) nano /etc/nginx/sites-enabled/my_app server {    listen 81;    server_tokens off;    server_name 0.0.0.0;     location / {        include uwsgi_params;        uwsgi_pass unix:///run/uwsgi/app/myapp/socket;    }         location /static/ {        alias /var/work/static/;    } } далее создадим и заполним конфиг myapp.ini (для uwsgi)  chdir = /var/work/projectname env = DJANGO_SETTINGS_MODULE = projectname.settings wsgi-file = /var/work/projectname/projectname/wsgi.py workers = 1 max-requests = 5000 plugins = python3 home = /var/work/venv pythonpath = /var/work/venv/lib/python3.8/site-packages processes = 5 threads = 2 master = true die-on-term = true socket = /run/uwsgi/app/myapp/socket chmod-socket = 664 vacuum = true uid = www-data gui = www-data !!! Я использую python3 (3.8) если у вас другой, то измените пункты, связанные с python Или используйте версию 3.8)) !!! projectname ВЕЗДЕ измените на имя вашего проекта далее перезапустим uwsgi и nginx service uwsgi restartservice nginx restart После перезапуска nginx и uwsgi сайт должен быть доступен по адресу http://IP вашего сервера:81  ГДЕ СМОТРЕТЬ ЛОГИ? /var/log/nginx /var/log/uwsgi/app Надеюсь, это вам помогло. В интернете ничего из того, что я смотрел не работало "из коробки". Каждый раз возникала ошибка то тут, то там.. Ну или это была огромная "простыня" текста, читать которую было слишком долго. Да и после стольких ошибок не было доверия к тем или иным туториалам. Составив эту инструкцию я создал несколько новых серверов на Ubuntu и протестировал каждый шаг. Буду рад комментариям. Пишите, если у вас возникли какие-то ошибки!