Настройка резервного дата-центра для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка резервного дата-центра для 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка резервного дата-центра для 1С-Битрикс

Если основной сервер недоступен — резервный ДЦ должен принять трафик без ручного вмешательства и без потери данных. На практике большинство «резервных ДЦ» — это сервер с устаревшим бекапом, на который переключаются вручную спустя час после аварии. Нормально работающий резервный ДЦ для Битрикс — это реплицированная БД, зеркало файлов и автоматическое переключение DNS.

Компоненты резервного ДЦ

1. Репликация базы данных

Реплика MySQL/MariaDB в резервном ДЦ — обязательна. Настраивается через стандартную бинлог-репликацию или GTID:

# На резервной реплике
[mysqld]
server-id = 10
gtid_mode = ON
enforce_gtid_consistency = ON
read_only = ON
log_slave_updates = ON  # нужно если реплика станет мастером

Мониторинг лага репликации — ключевая метрика для оценки RPO:

SHOW SLAVE STATUS\G
-- Seconds_Behind_Master: 2  -- приемлемо
-- Seconds_Behind_Master: 300 -- проблема, нужно расследовать

2. Синхронизация файлов

Каталог upload/ синхронизируется через rsync по расписанию или непрерывно через inotifywait:

# Непрерывная синхронизация через inotify
inotifywait -m -r -e create,modify,delete /var/www/bitrix/upload/ |
while read path action file; do
    rsync -az /var/www/bitrix/upload/ \
        backup-dc:/var/www/bitrix/upload/ &
done

Файлы конфигурации (/bitrix/.settings.php, dbconn.php) — через Git или отдельный rsync скрипт при каждом изменении.

3. Готовый веб-стек на резервной площадке

Резервный сервер должен иметь установленный и настроенный стек (nginx, php-fpm, redis) с корректным конфигом. Файлы Битрикс (/bitrix/, /local/) — синхронизируются раз в сутки или из последнего деплоя.

Переключение: ручное vs автоматическое

Ручное переключение — оператор меняет A-запись DNS после подтверждения аварии. Минимальный TTL для быстрого переключения — 60–300 секунд.

Автоматическое (failover) — healthcheck на основном ДЦ, при недоступности — скрипт обновляет DNS через API:

#!/bin/bash
# healthcheck.sh — запускается каждую минуту через cron
MAIN_IP="185.10.1.100"
BACKUP_IP="195.20.2.100"
DOMAIN="your-site.ru"

if ! curl -sf --max-time 10 "https://$DOMAIN/health" > /dev/null; then
    # Переключаем DNS через Cloudflare API
    curl -X PATCH \
        "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID" \
        -H "Authorization: Bearer $CF_TOKEN" \
        -H "Content-Type: application/json" \
        --data '{"content":"'"$BACKUP_IP"'","ttl":60}'

    # Уведомление команды
    curl -s "https://api.telegram.org/bot$TG_TOKEN/sendMessage" \
        -d "chat_id=$TG_CHAT&text=FAILOVER+ACTIVATED:+switched+to+backup+DC"
fi

Активация резервного ДЦ: чеклист

Когда failover срабатывает, на резервной площадке нужно:

  1. Повысить реплику до мастера: STOP SLAVE; RESET SLAVE ALL;
  2. Обновить /bitrix/.settings.php — заменить IP мастера БД на локальный
  3. Убедиться, что Redis запущен и сессии доступны
  4. Проверить cron-задачи Битрикс (агенты): /bitrix/admin/agent_list.php
  5. Запустить тестовую транзакцию в магазине
  6. Уведомить службу поддержки об изменении точки обработки заказов

Шаги 1–3 автоматизируются через Ansible playbook:

# failover.yml
- name: Promote MySQL replica to master
  mysql_replication:
    mode: stopreplica

- name: Update Bitrix DB config
  template:
    src: settings.php.j2
    dest: /var/www/bitrix/bitrix/.settings.php
  vars:
    db_host: "127.0.0.1"  # локальный мастер на резервной площадке

- name: Restart php-fpm
  service:
    name: php8.1-fpm
    state: restarted

Сроки настройки

Настройка резервного ДЦ с репликацией БД, синхронизацией файлов и автоматическим failover DNS — 5–8 рабочих дней, включая тестирование переключения.