Открыть список
Как стать автором
Обновить

Комментарии 14

как понимаю это нафик не нужно исли используешь докер сварм, там автоматическая балансировка идет сервисов
Мне кажется, что swarm это не то. Была нужна не кластеризация с балансировкой трафика, а доступ к нескольким сервисам по одному
внешнему интерфейсу и порту. Для каждого сервиса используется свой docker образ (где на базе php 5.6, где на 7.4) и свои тома,
проброшенные на локальные папки хост машины, но хост машина одна. Как переправить трафик с 80 порта хост системы в один из
работающих контейнеров с рамках swarm? Я пока не понимаю.

Если для каждого сервиса используется своя сборка — не рассматривали использование — jwilder/nginx-proxy? Я им закрыл туже задачу + легко прикручивается автоматическая выдача сертификатов letsencrypt.

Да, по советам в комментариях смотрю jwilder/nginx-proxy и traefik. Спасибо.
Если вам нужен реверс прокси, лучше использовать nginx.
Отдельные сети для докера немного оверкилл, наверное.
Для решения моих проблем подошел бы и nginx. Но не уверен, что nginx лучше. На мой взгляд haproxy более заточен под задачи проксирования и более гибок в настройках. nginx довольно универсален и есть соблазн использовать его везде, но универсальные решения всегда уступают специализированным.

Почему оверкилл по сети? Это же внутренняя сеть docker. При запуске docker-compose, если не указано другое, автоматически создается сеть в которой регистрируются запускаемые контейнеры. Просто мы берем ее параметры под контроль чтобы жестко задать ip адреса в конфигурации haproxy. При работе nginх тоже пришлось бы указывать адреса куда направлять запросы.
Нет, haproxy это High Availability Proxy и заточен он под другое. Реверс прокси с SSL и статикой это естественный кейс nginx.

Ещё есть же traefik. С ним имхо в докер намного удобнее. Настройка вся в одном docker-compose


backend:
    image: go-backend
    restart: always
    labels:
      - "traefik.backend=backend"
      - "traefik.http.routers.backend.rule=Host(`${HOST}`)"
Хм-м… traefik тоже одно из решений. Выглядит интересно. Спасибо, посмотрю на него внимательнее.

А почему не использовать готовое решение аля traefik или https://hub.docker.com/r/jwilder/nginx-proxy? И то и другое требует минимальных изменений для работы (или лейблы или переменные в контейнере) и умеет все что нужно...

Pssss
Молчим про caddyserver :)

Ребята, никто не сталкивался с тем, что бд медленнее, когда или приложение в докере или бд или оба сразу? Третий день эксперименирую, больше для себя, но просадка приложения при активной работе с бд около 20%, если на чистом сетевом взаимодействии, типа дамп грузить выгрузить, то может и до 50% замедление быть...

А контейер с базой ничего не прокидывает на ружу? И какая система? Случаем не windows?

Пробовал и с монтированием -v и без, я вчера даже рядом с php поставил MariaDB, понял что чет не то или с настройками или с опциями запуска, пиковые скорости чтения проседают из БД. Погуглил, кто-то пишет что на контейнере centos ситуация лучше, чем на официальных убунту или alpine, тут какая-то магия, никогда особо не запаковывал основные проекты в докер, только устаревшие всякие в докер закинул и забыл, но тут решил закрыть вопрос когда разрабатываю на новой версии PHP, на продакте чуть старее, каких-то модулей нет или локаль не та, в общем полную переносимость реализовать захотел и с базой тоже захотел зафиксировать одну версию с одними настройками, но тут надо колдовать с опциями, ну или забить, так и оставить, в базе обычно меньше изменений критичных, чем например между php 7.1 и 7.4…
Система хоста Debian 10.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.