Зеркало сайта и фолбэк-домен — как переключаться без простоя

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

Когда основной сайт недоступен, есть два сценария: бизнес лежит до восстановления (плохо) или автоматически переключается на резерв (хорошо). Второе требует немного инфраструктуры, но работает.

Схема active-passive

  • Active — основной сайт. Принимает 100% трафика.
  • Passive — зеркало на резервном хостинге и/или резервном домене. Готово принять трафик за секунды.
  • Health-check — внешний мониторинг, проверяющий active. При падении — переключает DNS.

Что должно быть на passive

  1. Свежая копия кода — деплоится одновременно с active или с задержкой максимум час.
  2. Реплика БД — асинхронная (Postgres streaming replication, MySQL binlog).
  3. Те же конфиги, секреты, env-переменные.
  4. SSL-сертификат на тот же домен — у обоих хостеров.
  5. Не отвечает наружу — пока не переключили DNS.

Переключение через DNS

Способ 1 — TTL и ручное переключение:

  • A-запись основного сайта с TTL 60-300 секунд.
  • При инциденте — поменять IP на резервный.
  • Распространение по DNS — 1-5 минут.

Способ 2 — DNS failover с health-check:

  • Сервисы — Yandex Cloud DNS с health-check, Selectel DNS, Cloudflare (если используете).
  • Health-check каждые 10-60 секунд.
  • При падении — автоматическая смена A-записи на passive.
  • Переключение 30 секунд - 5 минут.

Способ 3 — anycast/балансировщик L4:

  • Yandex Network Load Balancer или ITGLOBAL.
  • Балансировщик отвечает на один IP, но направляет трафик на active или passive.
  • Переключение мгновенное.
  • Дороже первых двух, но самый надёжный.

Фолбэк-домен

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

  • Регистрация в .RU, .SU, .РФ.
  • SSL-сертификат настроен.
  • 301-редирект с фолбэк-домена на основной (когда основной работает).
  • В коде сайта баннер: «работаем на резервном домене».

Что нельзя забыть

  • Email. SPF/DKIM/DMARC на резервном хостинге — иначе письма уходят в спам.
  • Платёжный шлюз — настроен на оба домена (ЮKassa, Тинькофф).
  • OAuth-провайдеры — добавить redirect_uri для резервного домена.
  • Поисковые системы — Яндекс.Вебмастер с обоими доменами.
  • Аналитика — счётчик метрики с поддержкой нескольких доменов.

Тестирование переключения

Сценарий «переключиться раз в квартал» — обязательно:

  1. В рабочее время вручную сделать active недоступным.
  2. Проверить, что failover сработал.
  3. Проверить работу всех ключевых функций на passive (логин, оплата, формы).
  4. Вернуть active.
  5. Замерить время до и после переключения.

Без тестирования резерв «не работает» в момент реальной аварии в 50% случаев.

Реалистичные сроки

  • Настройка с нуля для типового сайта на VPS: 3-5 дней разработчик + 1-2 дня DevOps.
  • Стоимость инфраструктуры: +50-100% к базовому хостингу (второй VPS, балансировщик).
  • Поддержка: 5-10 часов/месяц на синхронизацию, мониторинг, тесты.

Когда оправдано

Active-passive с автопереключением имеет смысл при стоимости простоя >5-10 тыс ₽/час. Это интернет-магазин с потоком, SaaS, банк-клиент, доставка. Для типового лендинга студии — overkill, достаточно резервного домена с ручным переключением.

Вывод

Зеркало сайта — реальная страховка от простоя. Минимум: DNS failover с health-check + резервный VPS с реплицируемой БД + фолбэк-домен в .RU. Тест раз в квартал. Без тестов резерв не работает. Цена — +50-100% к хостингу, окупается при потерях >5-10 тыс ₽/час.

Узнайте подробнее о наших компетенциях
Разработка, ИИ, автоматизация — что мы делаем и как.