Как я разместил несколько сайтов на одном VPS
Когда запускал несколько проектов, хотелось держать их в одном месте, чтобы упростить управление и сэкономить на хостинге. У меня был VPS, и я решил разместить на нём несколько сайтов. Задача — сделать так, чтобы сайты работали независимо друг от друга, не конфликтовали на портах, и при этом все проекты были под рукой.
Мне пришлось разобраться с реверс-прокси и Docker, чтобы организовать независимую работу сайтов на одном сервере. В этой статье расскажу, как я сделал это, и что стоит учитывать на каждом шаге.
Что такое реверс-прокси и Docker (и почему это важно)
Реверс-прокси нужен для того, чтобы правильно распределять запросы пользователей по разным сайтам, которые работают на одном сервере. Nginx, работая как реверс-прокси, анализирует DNS-записи и направляет запросы на правильные сайты. Без него все запросы будут попадать на один и тот же сайт, а не туда, куда нужно.
Что касается Docker, то он позволяет изолировать сайты друг от друга. Я понял, что без контейнеризации сайты могут "путаться" в ресурсах и создавать конфликты. Docker решает эту проблему и создаёт каждому сайту своё пространство, благодаря чему они работают стабильно и независимо.
Настройка DNS-записей
Чтобы сайты могли работать, нужно было правильно настроить DNS-записи для каждого домена. Я создал A-записи для каждого сайта, указывая IP-адрес моего VPS. Это важный шаг, который многие пропускают, но без этого сайты просто не будут доступны.
Для каждого сайта я создал отдельную запись, например:
Таким образом, каждый сайт знал, куда ему "идти", а пользователи видели правильные страницы.
Как я решил проблему портов
Когда на одном сервере работает несколько сайтов, все они по умолчанию хотят использовать один и тот же порт — 80 (HTTP) или 443 (HTTPS). Это создает конфликты, и без реверс-прокси тут не обойтись. Nginx перехватывает запросы и перенаправляет их на нужные сайты на основе DNS-записей.
Установка Nginx и Docker
Следующим шагом я установил Nginx и Docker. Это два ключевых инструмента для управления сайтами на одном VPS.
Также настроил фаервол, чтобы разрешить HTTP-доступ:
Как я запустил сайты в Docker
Теперь настал момент запустить сайты в контейнерах. Я решил использовать CMS Ghost — простой и легкий движок для блогов, который удобно развертывать.
Я создал Docker-сеть и запустил два контейнера для каждого сайта:
Защита контейнеров
Контейнеры не должны быть доступными для всех. Чтобы защитить их, я настроил фаервол, который разрешает доступ только через Nginx. Также стоит настроить VPN для удаленного доступа к контейнерам, если нужно.
Мониторинг и управление
После запуска сайтов я не расслабился, ведь управление не заканчивается на одном только запуске. Я настроил мониторинг контейнеров через Docker:
Также подключил мощные инструменты мониторинга, такие как Netdata, чтобы видеть полную картину того, как работают мои сайты и какие ресурсы они используют.
Оптимизация работы Nginx
Чтобы улучшить производительность серверов, я настроил кэширование запросов через Nginx:
Это снизило нагрузку на сервер и ускорить доступ к сайтам для пользователей.
Настройка реверс-прокси в Nginx
Для каждого сайта я создал отдельные конфигурационные файлы в /etc/nginx/conf.d.
Пример конфигурации для первого сайта:
Для второго сайта конфигурация аналогична, только с другим именем сервера и контейнера.
SSL-сертификаты и безопасность
Безопасность — не то, что можно игнорировать. Я настроил SSL-сертификаты через Let’s Encrypt:
Теперь сайты защищены, а пользователи могут безопасно заходить на них с классическим HTTPS.
Запуск нескольких сайтов на одном VPS — не такая сложная задача, как может показаться на первый взгляд. Мне удалось справиться с этим благодаря правильной настройке реверс-прокси, Docker и грамотному управлению DNS-записями.
Если решаете схожие задачи, вам просто нужно следовать шагам, которые я описал. Это обеспечит стабильную работу ваших сайтов и упростит их масштабирование по мере роста. Не забывайте о мониторинге и оптимизации — это залог долгосрочного успеха.
Если ищете надёжный VPS для размещения своих сайтов, рекомендую LikeVPS. С их мощными серверами и гибкими тарифами, сможете настроить инфраструктуру под любые нужды.