PYTHON DOCKER NGINX DJANGO. Разворачиваем web-сервер
ฝัง
- เผยแพร่เมื่อ 14 ต.ค. 2024
- Надежный хостинг FirstVDS! Переходи по ссылке и получай скидку 25% на первый месяц на любой тариф firstvds.ru/s/...
В видео web-сервер для ленивых ( • Веб-сервер на реальном... ) вы меня спрашивали почему php, а не python - исправляюсь.
В этом видео рассмотрим связку nginx python django gunicorn postgresql и настроим все это с помошью docker-compose. Уроки по docker-compose продолжаются. Покажу как в docker-compose добавить Dockerfile и настроить связку nginx gunicorn django.
Можете спросить почему не flask? Я думаю что данный мануал можешь адаптировать под свой фреймворк. Если не сможешь пиши.
ВИДЕО ПО ТЕМЕ:
Базовое видео про nginx - • NGINX с нуля до профи....
Настройка https • HTTPS + NGINX + DOCKER...
Балансировка нагрузки - • Балансировка нагрузки ...
Как уходить на технические работы • NGINX. Уходим на техни...
ХОТИТЕ ПОМОЧЬ РАЗВИТИЮ КАНАЛА?
★ BITCOIN: 3DkeRMFu4jsZCvRj8Bxn8iQCkgxfeVaxg8
★ Boosty (подписка донаты) boosty.to/pavl...
★ Яндекс.Деньги: money.yandex.r...
★ www.donational...
★ www.tinkoff.ru...
КОНТАКТЫ:
✦ Канал в TELEGRAM: t.me/worlditech (worlditech)
✦ Чат в TELEGRAM: t.me/linux_wit
✦ Группа в VK: worlditech
✦ INSTAGRAM: / pavlenko.at
✦ DISCORD: / discord
Еще контакты:
✧ t.me/pavlenko_at
✧ atpavlenko
✧ / anton.pavlenko.94
Антон, спасибо за твои видео. Всегда очень полезно. Было бы интересно узнать и послушать объяснение почему работа через unix сокет быстрее чем через tcp порт. И в каких случаях и когда что использовать.
Если этот коммент наберет хотябы 10 лайков и несколько комментарий за то сниму)))))))))))
+ коммент, чтоб было видео)))
Призываем видео)
Согласен по всем пунктам :)
@@pavlenkoat Будьте, любезны. Очень интересный вопрос.
А я начал с Flask свой путь, захватив сразу и консоль и базы данных и докер и деплои в дорогу. Путь был очень тернистый, но в итоге я выбрался через полтора года. Когда пришла очередь django и fastapi были смешанные чувства, но в итоге все что я брал в дорогу с flask пригодилось.
6:50 Наследие древних инков тащится и в новые версии, там где не нужно. Джанго ввело модуль Path для работы с папками. Даже в конфиге вывел уже их использование. Но древние инки, по привычке собирают всё через модуль OS.
STATIC_ROOT = os.path.join(BASE_DIR, "static")
Правильно делать так
STATIC_ROOT = BASE_DIR / "static"
поглядим на Антона, душащего питона
Антон так сильно похож на Дзюбу?
@@-MaCkRage- Дзюба учит питон?
спасибо огромное! Настолько своевременное видео, что прям страшно )))
Ох, это видео нк просто огонь! Мне помогло. Наверное помогло )) (идёт сборка образа). Настолько лаконичного и хорошего обзора нет в рунете.
крутой видос и отличный юмор! )) спасибо!
Спасибо
Ни} {#@ не понятно, но очень интересно! 😅👍🏻 А если без шуток, хорошо подаёшь материал, интересно смотреть!
Угу. И статика не будет отдаваться в энджиникс, т.к. в докерфайле не указана директива волум. Если работа будет из под рута, статика будет генерится, если прикладной пользователь, то без волума -- пермишн денайд. И где вызывается collectstatic?
Спасибо огромное!
Прямо то что искал
Спасибо за видео, только есть вопрос - а нафига django-environ, если в OS есть этот модуль?
спасибо). Прекрасный канал, прекрасная инфа)
А почему бы еще джангу не обернуть в какую-нибудь дафну?
Неожиданно и приятно)
Ну как бы раз аудитория хочет значит надо пилить. Тем более это совпадает с желаемыми темами партнера выпуска. Скажи ему за это спасибо
@@pavlenkoat я был бы не против видоса по php для начинающих.
Типо как ставить и какую ide, как локально или в контейнере хостить, лить в гит и как правильно искать документацию
Да я ж не программер))))
@@matiasprofi483 хабр, доу
Спасибо за видео! Антон было б интересно посмотреть про развертывание ТГбота на flask в продакшен. Телега принимает по только https и хочется посмотреть как на сервере настроить nginx с помощью самопoдписных сертификатов и связать это все с flask и docker + статика т.к. у бота есть админ панель. От меня лайк этому видео просьба сделать следующее по моему вопросу.
Сам делай
Супер, спасибо огромное.
Единственное, было бы приятно видеть скриншоты с подсветкой синтаксиса, например из vscode
Я на сервере конфиги пишу так как у меня на компе нет докера))))
@@pavlenkoat я приноровился писать через vscode с плагином Remote - SSH. Очень удобно.
Единственная бяка - права. vscode настолько вызывает привыкание, что иногда хочется даже конфиг апача\нжинкса править, но из под своего пользователя не получается, и надо или от рута делать, либо еще что нибудь думать. Короче, я подсел)
ты в 10 минут уложил почти 10 дней моих кавыряний...
я начинаю задумыватся... не пойти ли мне на завод
Так думаешь я меньше потратил на изучения?
спасибо, но я новичек и ничего не понял, я даже не понял куда писать этот докерфаил, я сделал сайт на джанго + mysql, а как его запустить на впс хрен поймеш видимо потому что 0 знаний в линуксе......пойду душить питона
Эхх теперь у меня такая ситуация ша думаю на рег скинуть чета пока не выходит😅
спасибо) люблю твое творчество
Есть какие-то отличия для fastapi?) как понял из повествования - нет)
Net
мне не хватает ls в папке откуда все запускается :)
1:30 попал в 10ку
На днях отругали за незнание nginx. Надо всё наверстать.
Антон, спасибо за такое видео! да и не только за него, весь контент топ)
Хотелось бы вашего совета услышать по поводу одного вопроса, а может и нескольких.
Я использую WSL2 и при проверке файла сокета gunicorn (команда sudo systemctl status gunicorn.socket) в консольке выдает ошибку "System has not been booted with systemd as init system (PID 1). Can’t operate. Failed to connect to bus: Host is down". Погуглив, узнал, что WSL2 кастрированная и не выполняет эту команду и предлагает заменить эту команду на sudo service service_name status и тут просто выдает, что это неопознанный сервис и как бы.. это вроде бы и не сервис и вообще после этого запутался. Если вам знакома такая ситуация, то подскажите, что в этом случае делать? Можно ли заменить команду systemctl в WSL2 или же придется ставить полноценную убунту второй системой? Я новичок в этом всем, буду очень признателен!
Привет. Честно ниразу не пользовался wsl. Да и виндой долгое время не пользовался. Я даже с компании уволился так как там видна.
@@pavlenkoat спасибо, что ответили ! Да вот тоже смотрю если смотреть обучающие статьи или видео, то почти все используют дистрибутив линукс у каждого свой, но с виндой никто не работает. Видимо, тоже придется ставить убунту к примеру и там уже с ней работать.
@@wandos777 Я сейчас на мак перешел вынуждено.
Можно сделать для flask и сelery ?
Почему gunicorn а не uwsgi?
Привет. Спасибо за видео, очень полезное, жаль, что раньше таких подробных не нашел. Хотя и сейчас много моментов прояснилось))
Очень интересно было бы знать, как настроить (а желательно и автоматизировать) получение ssl сертификата для nginx внутри docker.
Может есть простое решение...
Я не нашел, когда это нужно было и через exec руками certbot ставил, получал сертификат.
Сейчас же откатился и держу nginx локально, а все остальное в докере...
Пару месяцев назад была в основном либо deprecated инфа, либо замудренная, и в основном на англосайтах.)
Посмотри в описании есть видео
Называется https для ленивых
Спасибо за ваши видео! Мне очень понравилось видео про VestaCP, но мне не удалось его поставить (пробовал на разных машинах и ОС). Я искал бесплатные альтернативы и нашёл ISP Config. У меня он завёлся сразу, хоть и были запинки. Было бы круто если бы вы сняли про него видео с вашим авторитетным мнением и опытом. Плюс на русско язычном пространстве я нашёл всего 2 видео про него.
веста уже мертва, на bubuntu20 не поставить
лучше изучи докер, это куда проче чем кажется. тогда надобность отпадет в этих решениях
Эм? И что? А какие файлы вкинуть в /project для hello world
почему мой комментарий не отображается?
Если вы ненармотивную лексику использовали или ссылки кидали ютуб их удаляет
@@pavlenkoat я хотел сказать, что контейнер с джангой не запускается. Gunicorn ругается, пишет No module named 'apps'. Как пофиксить?
Для меня пока сложновато объясняете. Подучусь у других и вернусь позже! Удачи
Я никуя не понял
А зачем в директиве alias у nginx-a в конце пути есть /staticfiles/? Ведь если его не дописывать, то он и обрезаться не будет если совпадёт с lication-ом и соответсвенно путь поиска будет такой же - а писать на целую директорию меньше.
Т.е. если оставить alias /var/www/html/, то при запросе domain.ru/staticfiles/1.jpg поиск на серваке будет по пути /var/www/html/staticfiles/1.jpg. То есть такой же путь как и с указанным staticfiles в alias-е
На самом деле для примера. Так как старика может быть не в папке с проектом.
@@pavlenkoat а можешь пожалуйста привести пример когда alias будет намного удобней чем root? Можно даже надуманный пример. Просто непонятно почему нельзя только root-ом обойтись
Когда у тебя путь в урле не соответствует пути в файловой системе. К примеру сайт лежит в /var/www/sitename/ , a контент в /home/user/content/sitename/, отдать файлы ты хочешь по урлу sitename/mycat/urod.jpg.
@@pavlenkoat
server {
location / {
root /var/www/sitename/;
}
location /mycat/ {
root /home/user/content/sitename/;
}
}
Вы наверно внимательно не слушали видео. Пересмотрте и поймите в чем ваша ошибка.
Добрый день, а как это работает ?
location / {
root $project_home;
try_files $uri @;
}