PYTHON DOCKER NGINX DJANGO. Разворачиваем web-сервер

Поділитися
Вставка
  • Опубліковано 1 жов 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

КОМЕНТАРІ • 84

  • @y6vmeq
    @y6vmeq 3 роки тому +73

    Антон, спасибо за твои видео. Всегда очень полезно. Было бы интересно узнать и послушать объяснение почему работа через unix сокет быстрее чем через tcp порт. И в каких случаях и когда что использовать.

    • @pavlenkoat
      @pavlenkoat  3 роки тому +20

      Если этот коммент наберет хотябы 10 лайков и несколько комментарий за то сниму)))))))))))

    • @НикитаАртемьев-щ2ь
      @НикитаАртемьев-щ2ь 3 роки тому +2

      + коммент, чтоб было видео)))

    • @TheDjCrazyFrog
      @TheDjCrazyFrog 3 роки тому +1

      Призываем видео)

    • @bsg1147
      @bsg1147 3 роки тому +1

      Согласен по всем пунктам :)

    • @Shishlin
      @Shishlin 3 роки тому

      @@pavlenkoat Будьте, любезны. Очень интересный вопрос.

  • @Alex.M.
    @Alex.M. 11 місяців тому +4

    6:50 Наследие древних инков тащится и в новые версии, там где не нужно. Джанго ввело модуль Path для работы с папками. Даже в конфиге вывел уже их использование. Но древние инки, по привычке собирают всё через модуль OS.
    STATIC_ROOT = os.path.join(BASE_DIR, "static")
    Правильно делать так
    STATIC_ROOT = BASE_DIR / "static"

  • @MrCter
    @MrCter 3 роки тому +10

    поглядим на Антона, душащего питона

    • @-MaCkRage-
      @-MaCkRage- 3 роки тому +1

      Антон так сильно похож на Дзюбу?

    • @azatbekbolov8278
      @azatbekbolov8278 2 роки тому +1

      @@-MaCkRage- Дзюба учит питон?

  • @PythonDevelopment
    @PythonDevelopment 2 роки тому +4

    А я начал с Flask свой путь, захватив сразу и консоль и базы данных и докер и деплои в дорогу. Путь был очень тернистый, но в итоге я выбрался через полтора года. Когда пришла очередь django и fastapi были смешанные чувства, но в итоге все что я брал в дорогу с flask пригодилось.

  • @dd-pe5dp
    @dd-pe5dp 2 роки тому +2

    спасибо, но я новичек и ничего не понял, я даже не понял куда писать этот докерфаил, я сделал сайт на джанго + mysql, а как его запустить на впс хрен поймеш видимо потому что 0 знаний в линуксе......пойду душить питона

    • @Human-de8nf
      @Human-de8nf Рік тому

      Эхх теперь у меня такая ситуация ша думаю на рег скинуть чета пока не выходит😅

  • @MRkorskov
    @MRkorskov 3 роки тому +2

    Ни} {#@ не понятно, но очень интересно! 😅👍🏻 А если без шуток, хорошо подаёшь материал, интересно смотреть!

  • @_ilunchik_2244
    @_ilunchik_2244 Місяць тому

    А почему бы еще джангу не обернуть в какую-нибудь дафну?

  • @vedroidek
    @vedroidek Рік тому +1

    На днях отругали за незнание nginx. Надо всё наверстать.

  • @alexsurnov9544
    @alexsurnov9544 2 роки тому +4

    Спасибо за видео! Антон было б интересно посмотреть про развертывание ТГбота на flask в продакшен. Телега принимает по только https и хочется посмотреть как на сервере настроить nginx с помощью самопoдписных сертификатов и связать это все с flask и docker + статика т.к. у бота есть админ панель. От меня лайк этому видео просьба сделать следующее по моему вопросу.

  • @bashkirtsevich
    @bashkirtsevich 3 роки тому +1

    Угу. И статика не будет отдаваться в энджиникс, т.к. в докерфайле не указана директива волум. Если работа будет из под рута, статика будет генерится, если прикладной пользователь, то без волума -- пермишн денайд. И где вызывается collectstatic?

  • @koteich_live
    @koteich_live Рік тому +1

    ты в 10 минут уложил почти 10 дней моих кавыряний...

    • @koteich_live
      @koteich_live Рік тому +1

      я начинаю задумыватся... не пойти ли мне на завод

    • @pavlenkoat
      @pavlenkoat  Рік тому +2

      Так думаешь я меньше потратил на изучения?

  • @vladtkachenko6822
    @vladtkachenko6822 3 роки тому +2

    спасибо огромное! Настолько своевременное видео, что прям страшно )))

  • @web_kub
    @web_kub 5 місяців тому

    1:30 попал в 10ку

  • @andriivozniuk4834
    @andriivozniuk4834 3 роки тому +1

    мне не хватает ls в папке откуда все запускается :)

  • @son_of_sky
    @son_of_sky 3 роки тому +1

    Есть какие-то отличия для fastapi?) как понял из повествования - нет)

  • @egorsmorgunov8024
    @egorsmorgunov8024 Рік тому

    Эм? И что? А какие файлы вкинуть в /project для hello world

  • @wandos777
    @wandos777 2 роки тому +1

    Антон, спасибо за такое видео! да и не только за него, весь контент топ)
    Хотелось бы вашего совета услышать по поводу одного вопроса, а может и нескольких.
    Я использую 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 или же придется ставить полноценную убунту второй системой? Я новичок в этом всем, буду очень признателен!

    • @pavlenkoat
      @pavlenkoat  2 роки тому +1

      Привет. Честно ниразу не пользовался wsl. Да и виндой долгое время не пользовался. Я даже с компании уволился так как там видна.

    • @wandos777
      @wandos777 2 роки тому

      @@pavlenkoat спасибо, что ответили ! Да вот тоже смотрю если смотреть обучающие статьи или видео, то почти все используют дистрибутив линукс у каждого свой, но с виндой никто не работает. Видимо, тоже придется ставить убунту к примеру и там уже с ней работать.

    • @pavlenkoat
      @pavlenkoat  2 роки тому +1

      @@wandos777 Я сейчас на мак перешел вынуждено.

  • @takiekakmi7532
    @takiekakmi7532 2 роки тому

    Спасибо за видео, только есть вопрос - а нафига django-environ, если в OS есть этот модуль?

  • @user-ku4iu3ed9n
    @user-ku4iu3ed9n 3 роки тому +1

    спасибо). Прекрасный канал, прекрасная инфа)

  • @anatolys9203
    @anatolys9203 2 роки тому +1

    крутой видос и отличный юмор! )) спасибо!

  • @iiiseriii20091
    @iiiseriii20091 9 місяців тому

    Почему gunicorn а не uwsgi?

  • @МундштукВезучий
    @МундштукВезучий 3 роки тому +1

    Привет. Спасибо за видео, очень полезное, жаль, что раньше таких подробных не нашел. Хотя и сейчас много моментов прояснилось))
    Очень интересно было бы знать, как настроить (а желательно и автоматизировать) получение ssl сертификата для nginx внутри docker.
    Может есть простое решение...
    Я не нашел, когда это нужно было и через exec руками certbot ставил, получал сертификат.
    Сейчас же откатился и держу nginx локально, а все остальное в докере...
    Пару месяцев назад была в основном либо deprecated инфа, либо замудренная, и в основном на англосайтах.)

    • @pavlenkoat
      @pavlenkoat  3 роки тому

      Посмотри в описании есть видео

    • @pavlenkoat
      @pavlenkoat  3 роки тому

      Называется https для ленивых

  • @danilmerkurev6248
    @danilmerkurev6248 Рік тому

    Ох, это видео нк просто огонь! Мне помогло. Наверное помогло )) (идёт сборка образа). Настолько лаконичного и хорошего обзора нет в рунете.

  • @alexsur7315
    @alexsur7315 3 роки тому

    Можно сделать для flask и сelery ?

  • @hsv000
    @hsv000 3 роки тому +1

    Супер, спасибо огромное.
    Единственное, было бы приятно видеть скриншоты с подсветкой синтаксиса, например из vscode

    • @pavlenkoat
      @pavlenkoat  3 роки тому +1

      Я на сервере конфиги пишу так как у меня на компе нет докера))))

    • @hsv000
      @hsv000 3 роки тому

      @@pavlenkoat я приноровился писать через vscode с плагином Remote - SSH. Очень удобно.
      Единственная бяка - права. vscode настолько вызывает привыкание, что иногда хочется даже конфиг апача\нжинкса править, но из под своего пользователя не получается, и надо или от рута делать, либо еще что нибудь думать. Короче, я подсел)

  • @closedclose
    @closedclose 2 роки тому

    Спасибо огромное!
    Прямо то что искал

  • @olehpavliv2828
    @olehpavliv2828 3 роки тому

    спасибо) люблю твое творчество

  • @georgesudnik927
    @georgesudnik927 3 роки тому

    Спасибо за ваши видео! Мне очень понравилось видео про VestaCP, но мне не удалось его поставить (пробовал на разных машинах и ОС). Я искал бесплатные альтернативы и нашёл ISP Config. У меня он завёлся сразу, хоть и были запинки. Было бы круто если бы вы сняли про него видео с вашим авторитетным мнением и опытом. Плюс на русско язычном пространстве я нашёл всего 2 видео про него.

    • @maxpower6755
      @maxpower6755 3 роки тому

      веста уже мертва, на bubuntu20 не поставить
      лучше изучи докер, это куда проче чем кажется. тогда надобность отпадет в этих решениях

  • @matiasprofi483
    @matiasprofi483 3 роки тому +1

    Неожиданно и приятно)

    • @pavlenkoat
      @pavlenkoat  3 роки тому +1

      Ну как бы раз аудитория хочет значит надо пилить. Тем более это совпадает с желаемыми темами партнера выпуска. Скажи ему за это спасибо

    • @matiasprofi483
      @matiasprofi483 3 роки тому

      @@pavlenkoat я был бы не против видоса по php для начинающих.
      Типо как ставить и какую ide, как локально или в контейнере хостить, лить в гит и как правильно искать документацию

    • @pavlenkoat
      @pavlenkoat  3 роки тому

      Да я ж не программер))))

    • @AlexClamp
      @AlexClamp 3 роки тому

      @@matiasprofi483 хабр, доу

  • @mrfofaify
    @mrfofaify 2 роки тому

    почему мой комментарий не отображается?

    • @pavlenkoat
      @pavlenkoat  2 роки тому +1

      Если вы ненармотивную лексику использовали или ссылки кидали ютуб их удаляет

    • @mrfofaify
      @mrfofaify 2 роки тому

      @@pavlenkoat я хотел сказать, что контейнер с джангой не запускается. Gunicorn ругается, пишет No module named 'apps'. Как пофиксить?

  • @SuleimanVatrushkin
    @SuleimanVatrushkin 2 роки тому

    Для меня пока сложновато объясняете. Подучусь у других и вернусь позже! Удачи

  • @rogstok9943
    @rogstok9943 Рік тому

    Я никуя не понял

  • @donfedor007
    @donfedor007 Рік тому

    Добрый день, а как это работает ?
    location / {
    root $project_home;
    try_files $uri @;
    }

  • @ivanivanov-hl7ry
    @ivanivanov-hl7ry 3 роки тому

    А зачем в директиве alias у nginx-a в конце пути есть /staticfiles/? Ведь если его не дописывать, то он и обрезаться не будет если совпадёт с lication-ом и соответсвенно путь поиска будет такой же - а писать на целую директорию меньше.
    Т.е. если оставить alias /var/www/html/, то при запросе domain.ru/staticfiles/1.jpg поиск на серваке будет по пути /var/www/html/staticfiles/1.jpg. То есть такой же путь как и с указанным staticfiles в alias-е

    • @pavlenkoat
      @pavlenkoat  3 роки тому

      На самом деле для примера. Так как старика может быть не в папке с проектом.

    • @ivanivanov-hl7ry
      @ivanivanov-hl7ry 3 роки тому

      @@pavlenkoat а можешь пожалуйста привести пример когда alias будет намного удобней чем root? Можно даже надуманный пример. Просто непонятно почему нельзя только root-ом обойтись

    • @pavlenkoat
      @pavlenkoat  3 роки тому +1

      Когда у тебя путь в урле не соответствует пути в файловой системе. К примеру сайт лежит в /var/www/sitename/ , a контент в /home/user/content/sitename/, отдать файлы ты хочешь по урлу sitename/mycat/urod.jpg.

    • @ivanivanov-hl7ry
      @ivanivanov-hl7ry 3 роки тому

      @@pavlenkoat
      server {
      location / {
      root /var/www/sitename/;
      }
      location /mycat/ {
      root /home/user/content/sitename/;
      }
      }

    • @pavlenkoat
      @pavlenkoat  3 роки тому

      Вы наверно внимательно не слушали видео. Пересмотрте и поймите в чем ваша ошибка.