Как я разместил несколько сайтов на одном VPS

Когда запускал несколько проектов, хотелось держать их в одном месте, чтобы упростить управление и сэкономить на хостинге. У меня был VPS, и я решил разместить на нём несколько сайтов. Задача — сделать так, чтобы сайты работали независимо друг от друга, не конфликтовали на портах, и при этом все проекты были под рукой.

Мне пришлось разобраться с реверс-прокси и Docker, чтобы организовать независимую работу сайтов на одном сервере. В этой статье расскажу, как я сделал это, и что стоит учитывать на каждом шаге.

Что такое реверс-прокси и Docker (и почему это важно)

Реверс-прокси нужен для того, чтобы правильно распределять запросы пользователей по разным сайтам, которые работают на одном сервере. Nginx, работая как реверс-прокси, анализирует DNS-записи и направляет запросы на правильные сайты. Без него все запросы будут попадать на один и тот же сайт, а не туда, куда нужно.

Что касается Docker, то он позволяет изолировать сайты друг от друга. Я понял, что без контейнеризации сайты могут "путаться" в ресурсах и создавать конфликты. Docker решает эту проблему и создаёт каждому сайту своё пространство, благодаря чему они работают стабильно и независимо.

Настройка DNS-записей

Чтобы сайты могли работать, нужно было правильно настроить DNS-записи для каждого домена. Я создал A-записи для каждого сайта, указывая IP-адрес моего VPS. Это важный шаг, который многие пропускают, но без этого сайты просто не будут доступны.

Для каждого сайта я создал отдельную запись, например:

Как я разместил несколько сайтов на одном VPS

Таким образом, каждый сайт знал, куда ему "идти", а пользователи видели правильные страницы.

Как я решил проблему портов

Когда на одном сервере работает несколько сайтов, все они по умолчанию хотят использовать один и тот же порт — 80 (HTTP) или 443 (HTTPS). Это создает конфликты, и без реверс-прокси тут не обойтись. Nginx перехватывает запросы и перенаправляет их на нужные сайты на основе DNS-записей.

Установка Nginx и Docker

Следующим шагом я установил Nginx и Docker. Это два ключевых инструмента для управления сайтами на одном VPS.

Как я разместил несколько сайтов на одном VPS

Также настроил фаервол, чтобы разрешить HTTP-доступ:

Как я разместил несколько сайтов на одном VPS

Как я запустил сайты в Docker

Теперь настал момент запустить сайты в контейнерах. Я решил использовать CMS Ghost — простой и легкий движок для блогов, который удобно развертывать.

Я создал Docker-сеть и запустил два контейнера для каждого сайта:

Как я разместил несколько сайтов на одном VPS

Защита контейнеров

Контейнеры не должны быть доступными для всех. Чтобы защитить их, я настроил фаервол, который разрешает доступ только через Nginx. Также стоит настроить VPN для удаленного доступа к контейнерам, если нужно.

Мониторинг и управление

После запуска сайтов я не расслабился, ведь управление не заканчивается на одном только запуске. Я настроил мониторинг контейнеров через Docker:

Как я разместил несколько сайтов на одном VPS

Также подключил мощные инструменты мониторинга, такие как Netdata, чтобы видеть полную картину того, как работают мои сайты и какие ресурсы они используют.

Оптимизация работы Nginx

Чтобы улучшить производительность серверов, я настроил кэширование запросов через Nginx:

Как я разместил несколько сайтов на одном VPS

Это снизило нагрузку на сервер и ускорить доступ к сайтам для пользователей.

Настройка реверс-прокси в Nginx

Для каждого сайта я создал отдельные конфигурационные файлы в /etc/nginx/conf.d.

Пример конфигурации для первого сайта:

Как я разместил несколько сайтов на одном VPS

Для второго сайта конфигурация аналогична, только с другим именем сервера и контейнера.

SSL-сертификаты и безопасность

Безопасность — не то, что можно игнорировать. Я настроил SSL-сертификаты через Let’s Encrypt:

Как я разместил несколько сайтов на одном VPS

Теперь сайты защищены, а пользователи могут безопасно заходить на них с классическим HTTPS.

Запуск нескольких сайтов на одном VPS — не такая сложная задача, как может показаться на первый взгляд. Мне удалось справиться с этим благодаря правильной настройке реверс-прокси, Docker и грамотному управлению DNS-записями.

Если решаете схожие задачи, вам просто нужно следовать шагам, которые я описал. Это обеспечит стабильную работу ваших сайтов и упростит их масштабирование по мере роста. Не забывайте о мониторинге и оптимизации — это залог долгосрочного успеха.

Если ищете надёжный VPS для размещения своих сайтов, рекомендую LikeVPS. С их мощными серверами и гибкими тарифами, сможете настроить инфраструктуру под любые нужды.

Начать дискуссию