Failover на VPS: автоматическое переключение на резервный сервер

ГлавнаяFailover на VPS: автоматическое переключение на резервный сервер

Содержание

Когда-то я считала, что одного VPS вполне достаточно. Но стоило однажды остаться без доступа к серверу из‑за сбоя в дата-центре, как всё изменилось. Я увидела белую страницу вместо сайта, а в Telegram начали поступать сообщения от клиентов: «Не открывается», «Проблема с оплатой». Тогда я впервые всерьёз села и разобралась, что такое failover, зачем он нужен и как его настроить. В этой статье рассказываю, как всё это работает — человеческим языком.


Что такое failover простыми словами

Failover — это когда у вас есть план Б. Представьте, что у вас кафе, и у входа работает только один терминал. Если он ломается — клиенты не могут оплатить, и вы теряете выручку. Но если рядом есть резервный терминал, который включается автоматически — бизнес не останавливается.

С VPS то же самое. Ваш основной сервер работает круглосуточно, но может произойти всё что угодно: сбой сети, DDOS, ошибка при обновлении, перегрузка. И вот тогда в дело вступает резервный сервер — он берёт на себя запросы, и пользователи даже не замечают подмены.


Где применяется

  • Сайты с высокой посещаемостью
  • Внутренние CRM
  • API и backend-сервисы
  • Платёжные шлюзы и SaaS-продукты
  • Публичные панели и консоли

Всё, что должно «жить» 24/7, — кандидат на failover.


Как выглядит базовая схема

Допустим, у вас два VPS:

  • vps-main
    — основной сервер (например, на Timeweb Cloud или FirstVDS)
  • vps-backup
    — резервный

Публичный домен

example.com
указывает на IP
vps-main
. Как только основной сервер недоступен, система (или DNS-провайдер) переключает трафик на IP резервного сервера.


Таблица: способы организации failover

МетодЧто этоКогда использоватьМинусы
DNS FailoverПереключение A-записей DNSПростые сайты, лендингиЗадержка в кэшировании DNS
Keepalived + Floating IPПеремещение IP между серверамиVPS в одной сети (например, Hetzner)Требует IP-алиаса
Nginx + HealthcheckПроверка бекендов и проксированиеAPI и микросервисыНе помогает при полной потере узла
Облачные решенияFailover от хостера или панелиПростые сценарииИногда дорогие

Как я настроила у себя DNS Failover

Что использовала:

  • Два VPS: один в Германии, второй в Финляндии
  • DNS через Cloudflare
  • Health Check включен (проверка HTTP-ответа с
    /status
    )
  • Включён TTL 60 секунд и «Proxied» режим выключен (иначе Cloudflare сам кеширует ошибку)

Что проверяет:

Каждую минуту Cloudflare пингует основной сервер. Если 3 раза подряд не получил ответа — перенаправляет трафик на IP второго VPS.

Результат:

Пользователь просто заходит на сайт и видит всё как обычно. Для него ничего не сломалось.


Как протестировать свою настройку?

Совет из практики — не надейтесь на теорию. Я выключила nginx на основном VPS командой:

sudo systemctl stop nginx

Спустя пару минут сайт стал открываться с резервного IP. Даже favicon грузилась без ошибок. Это убедило меня, что схема действительно работает.


А что с базой данных?

Если у вас сайт, где важны данные (например, интернет-магазин), важно синхронизировать базу данных. Есть несколько вариантов:

  • Репликация PostgreSQL или MySQL между серверами
  • Использование внешней DBaaS (например, PlanetScale)
  • Снэпшоты и регулярные бэкапы

Я лично использую PostgreSQL с асинхронной репликацией, а иногда просто копирую базу по cron раз в 30 минут — не идеально, но вполне рабочее решение для проекта средней критичности.


Что ещё стоит автоматизировать

  • Перезапуск упавшего сервиса через watchdog или
    systemd
  • Мониторинг через UptimeKuma, HetrixTools или Zabbix
  • Slack/Telegram-уведомления при падении основного сервера

Несколько человеческих советов

  • Не запускайте оба VPS в одной зоне — если у дата-центра сбой, упадут оба.
  • Тестируйте свой план failover раз в месяц. Как пожарную тревогу.
  • Не забывайте про сертификаты: на резервном сервере тоже должен быть актуальный Let’s Encrypt.
  • Если вы храните бэкапы — подумайте, как их можно быстро развернуть как рабочий сайт. Это ускорит «ручной» failover.

Настройка failover кажется сложной только до первого падения сервера. А потом вы будете благодарны себе, что всё предусмотрели. В моём случае, когда спустя полгода снова отвалился основной сервер, я просто попила чай, не дёргаясь. Всё уже переключилось. И никто даже не заметил.

Забирай бонус

Миграция бесплатна, а за оплату года — ещё месяц сверху.

Месяц в подарок
COPIED
NEWCOMM COPIED