Балансировщик на белорусском VPS: HAProxy и NGINX для МСП

Это инструкция по настройке простого и надёжного балансировщика нагрузки на белорусских VPS. Зачем нужен балансировщик: распределяет трафик между серверами, обеспечивает резерв и помогает выдержать всплески посетителей без сложного DevOps. Статья даёт практические сценарии для малого и среднего бизнеса в Беларуси и шаги, которые реально сделать на неделе.

Когда ставить HAProxy перед NGINX — сценарий интернет‑магазина в Гомеле

Сценарий: интернет‑магазин в Гомеле принимает заказы и периодически получает всплески трафика по выходным. На одном VPS сайт доступен, но при пиках падает. Решение: поставить HAProxy как входной балансировщик, NGINX — как веб‑сервер на бэкендах.

Как сделать:

  1. Развернуть два VPS в одном или в разных дата‑центрах Беларуси, на каждом установить NGINX и копию сайта.
  2. Установить HAProxy на отдельный VPS или на каждом узле (active‑active). Команды для Debian/Ubuntu: sudo apt update && sudo apt install haproxy nginx.
  3. В конфигурации HAProxy прописать frontend для порта 80/443 и backend с серверами NGINX. Включить простую проверку здоровья (health check) и алгоритм roundrobin.
  4. Для сессий корзины настроить sticky‑cookie в HAProxy или хранить сессии в Redis, доступном с обоих бэкендов.

SSL‑терминация и производительность — сценарий кафе с доставкой в Минске

Сценарий: небольшое кафе в Минске принимает заказы по карте и хочет быстрый HTTPS‑сайт. SSL‑терминация влияет на нагрузку и задержку.

Как сделать:

  • Определить, где завершать TLS: на HAProxy (рекомендуем для единой точки входа) или на NGINX (если бэкенды требуют отдельной политики). Для HAProxy собрать .pem с ключом и сертификатом и поместить в /etc/haproxy/certs/.
  • В HAProxy включить ssl‑offload: frontend bind *:443 ssl crt /etc/haproxy/certs/site.pem и пробрасывать трафик на backend по HTTP. Это разгружает NGINX и упрощает управление сертификатами.
  • Если используется Let’s Encrypt, автоматизировать обновление сертификатов и перезагрузку HAProxy через cron или системный таймер.

Отказоустойчивость между двумя VPS — сценарий салона красоты с онлайн‑записью

Сценарий: салон в Бресте ведёт запись через сайт. Нужно, чтобы при падении одного VPS сервис оставался доступен. Желательно минимально менять DNS.

Как сделать:

  1. Разместить два VPS в разнородных узлах хостинга: один в Минске, другой в Гомеле или Бресте.
  2. Запустить HAProxy на обоих серверах в режиме active‑active и настроить health checks друг на друга через HTTP/HTTPS. Для важных данных использовать репликацию базы данных (master‑replica) или общую базу в отдельном VPS.
  3. Для сессий применить внешний стор (Redis или S3‑совместимое хранилище) либо настроить sticky‑cookie с коротким TTL. Если провайдер поддерживает плавающий IP, настроить keepalived; если нет — снизить TTL DNS и использовать DNS failover у регистратора.

Защита, масштабирование и мониторинг — сценарий стартапа в Витебске

Сценарий: стартап в Витебске готовится к маркетинговой акции. Нужно отслеживать нагрузку и быть готовыми быстро добавить ресурсы.

Как сделать:

  • Подключить базовый мониторинг: метрики CPU, RAM, load, HTTP‑статусы. Для малого бюджета подойдёт Uptime Kuma и простая экспонируемая метрика в Prometheus с вывеской в Grafana.
  • Настроить алерты на рост времени ответа и падение health checks. Это позволит добавлять дополнительные бэкенды до полного перегруза.
  • Продумать защиту от DDoS и фильтрацию трафика у входа. Читайте про уровни DDoS‑защиты для малого бизнеса на белорусском VPS в материале про DDoS‑защиту.
  • Для автоматического добавления серверов изучите подходы к масштабированию и автоматизации деплоя: изучите материалы по автоматическому масштабированию веб‑приложений на белорусском VPS.

Типичные ошибки

  • Оставить health checks выключенными — балансировщик раздаёт трафик на упавший бэкенд.
  • Хранить сессии только в памяти NGINX на одном сервере — пользователи теряют корзины при переключении на другой бэкенд.
  • Терминовать TLS на разных серверах без синхронизации сертификатов — ошибки HTTPS при переключении.
  • Игнорировать мониторинг и алерты — проблемы замечают клиенты, не команда.
  • Устанавливать низкие значения timeouts в HAProxy без теста — обрывы при медленных соединениях.

Полезные ссылки: уровни DDoS‑защиты для малого бизнеса на белорусском VPS, автоматическое масштабирование веб‑приложений на белорусском VPS.

3 шага, которые можно сделать на неделе:

  1. На тестовом VPS установить HAProxy и NGINX, развести простой frontend/backend и включить health checks.
  2. Перенести сессии в Redis либо настроить sticky‑cookie, проверить поведение при рестарте бэкенда.
  3. Настроить базовый мониторинг uptime и алерты, проверить реакцию на искусственное падение одного бэкенда.

Балансировщик не требует большого бюджета, но требует продуманной архитектуры: здоровье бэкендов, хранение сессий, обновление сертификатов и мониторинг. Начните с простого HAProxy + NGINX и добавляйте уровни защиты и автоматизации по мере роста трафика.


🗓️

Вернуться на главную →