Это инструкция по настройке простого и надёжного балансировщика нагрузки на белорусских VPS. Зачем нужен балансировщик: распределяет трафик между серверами, обеспечивает резерв и помогает выдержать всплески посетителей без сложного DevOps. Статья даёт практические сценарии для малого и среднего бизнеса в Беларуси и шаги, которые реально сделать на неделе.
Когда ставить HAProxy перед NGINX — сценарий интернет‑магазина в Гомеле
Сценарий: интернет‑магазин в Гомеле принимает заказы и периодически получает всплески трафика по выходным. На одном VPS сайт доступен, но при пиках падает. Решение: поставить HAProxy как входной балансировщик, NGINX — как веб‑сервер на бэкендах.
Как сделать:
- Развернуть два VPS в одном или в разных дата‑центрах Беларуси, на каждом установить NGINX и копию сайта.
- Установить HAProxy на отдельный VPS или на каждом узле (active‑active). Команды для Debian/Ubuntu: sudo apt update && sudo apt install haproxy nginx.
- В конфигурации HAProxy прописать frontend для порта 80/443 и backend с серверами NGINX. Включить простую проверку здоровья (health check) и алгоритм roundrobin.
- Для сессий корзины настроить 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.
Как сделать:
- Разместить два VPS в разнородных узлах хостинга: один в Минске, другой в Гомеле или Бресте.
- Запустить HAProxy на обоих серверах в режиме active‑active и настроить health checks друг на друга через HTTP/HTTPS. Для важных данных использовать репликацию базы данных (master‑replica) или общую базу в отдельном VPS.
- Для сессий применить внешний стор (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 шага, которые можно сделать на неделе:
- На тестовом VPS установить HAProxy и NGINX, развести простой frontend/backend и включить health checks.
- Перенести сессии в Redis либо настроить sticky‑cookie, проверить поведение при рестарте бэкенда.
- Настроить базовый мониторинг uptime и алерты, проверить реакцию на искусственное падение одного бэкенда.
Балансировщик не требует большого бюджета, но требует продуманной архитектуры: здоровье бэкендов, хранение сессий, обновление сертификатов и мониторинг. Начните с простого HAProxy + NGINX и добавляйте уровни защиты и автоматизации по мере роста трафика.