@l4m3r

Как поднять несколько сайтов на одном сервере?

У компании есть 3 небольших малопосещаемых сайта. Сейчас они на разных обычных хостингах в силу исторических причин. В целях экономии и обучения, возникла идея купить один kvm VPS, установить туда докер, докеризировать (с использованием docker-compose) каждый сайт из запустить их на этом VPS. Я с докером в проде никогда не работал по этому вопрос:

1) Конфликты. Получается каждый сайт запускает свой контейнер nginx, php-fpm, mysql на одинаковых портах. Будет ошибка, разумеется. Нужно делать или общий docker-compose на все 3 проекта или ставить ещё 1 nginx вперёд всего этого, чтобы проксировать запросы? Или как? Или вообще отказаться от докера. Не понимаю.

2) Несколько сайтов на одном IP, которые резолвятся по serverName - это нормальный подход? Есть подводные камни?
  • Вопрос задан
  • 201 просмотр
Решения вопроса 4
DevMan
@DevMan Куратор тега Веб-разработка
Несколько сайтов на одном IP, которые резолвятся по serverName - это нормальный подход?
a как по вашему работают шаред–хостинги, у которых на одном ипе несколько сотен доменов/сайтов?

докер нужен там, где он нужен и когда он нужен. а не словили хайп, снесло кукушку, тулим его на каждый чих–пых.

по вашему описанию, вам даже впс не нужен – достаточно просто перенеси все сайты на один акаунт у одного хостера.
а для потренироваться отлично подходит локалхост или персональный впс.
Ответ написан
@dmb_1945
nginx, apache
docker это перебор, как выше сказали - для хайпа))
вы сейчас описали одевание труселей через голову причем четко подчеркнули, что первым правое ухо входить будет))))
Ответ написан
sim3x
@sim3x
nginx
Под каждый сайт свой пользователь со своим php-fpm/uWSGI

С докером вы намучаетесь
Ответ написан
neatsoft
@neatsoft
Life is too short for bad software
Категорически не согласен с ранее данными ответами. Докер отлично подходит для этой задачи, причём решает целый ряд проблем. Имеющиеся сайты могут оказаться привязаны к разным версиям одних и тех же программ, докеризация позволит изолировать их окружения. Упростится тестирование, деплой, и настройка dev окружений.

В качестве tls proxy / load balancer рекомендую использовать Traefik - он автоматически подхватывает Docker контейнеры в соответствии с указанными в docker-compose.yml правилами, получает tls сертификаты для всех адресов с помощью letsencrypt, эффективно роутит запросы между контейнерами, позволяет балансировать нагрузку между несколькими контейнерами (docker-compose --scale).

Время, потраченное на изучение Docker и Traefik, с лихвой окупится колоссальной экономией времени в будущих проектах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы