Настройка кластерной конфигурации 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка кластерной конфигурации 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • 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С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка кластерной конфигурации 1С-Битрикс

Настройка кластерной конфигурации 1С-Битрикс

Один сервер не может масштабироваться бесконечно. При пиковых нагрузках (акции, праздники) сайт падает или отвечает за 10+ секунд — вертикальное масштабирование упирается в стоимость и физические ограничения железа. Битрикс поддерживает горизонтальное масштабирование через встроенный механизм веб-кластера: несколько серверов приложений, общая база данных с репликацией, распределённый кэш.

Архитектура кластера Битрикс

Стандартная схема для highload:

             [Load Balancer]
            /       |        \
     [web-1]    [web-2]    [web-3]
        |           |           |
     [Shared Storage - NFS/GlusterFS]
        |
     [DB Master] ---> [DB Replica-1]
                  ---> [DB Replica-2]
        |
     [Memcached / Redis Cluster]
     [Elasticsearch Cluster]

Все веб-узлы работают с одним хранилищем файлов, общей БД и общим кэшем. Загрузки файлов (изображения, прайсы) попадают в разделяемое хранилище, доступное всем нодам.

Требования к кластеризуемому проекту

До перехода на кластер проверяем:

  • Нет хранения данных в $_SESSION без общего хранилища сессий
  • Нет прямых записей в локальную файловую систему (временные файлы — в /tmp на shared, кэш — в Memcached)
  • Нет hardcoded путей, зависящих от конкретного сервера
  • Файлы кэша Битрикс (/bitrix/cache/) смонтированы с NFS или вынесены в Memcached

Настройка модуля веб-кластера

В административной панели: Управление → Производительность → Кластер.

Активация через PHP:

\Bitrix\Main\Loader::includeModule('cluster');

// Регистрируем узлы кластера
$cluster = new \CCluster();
$cluster->Add([
    'NAME' => 'web-02',
    'HOST' => '10.0.0.12',
    'PORT' => 80,
    'STATUS' => 'ACTIVE',
]);

Shared Storage: NFS vs GlusterFS

NFS — проще в настройке, подходит для 2–3 нод в одном датацентре:

# На NFS-сервере
apt install nfs-kernel-server
echo "/var/www/bitrix/upload 10.0.0.0/24(rw,sync,no_root_squash)" >> /etc/exports
exportfs -a

# На веб-нодах
apt install nfs-common
mount -t nfs 10.0.0.20:/var/www/bitrix/upload /var/www/bitrix/upload

Монтируем только директории с пользовательским контентом: upload/, cache/ (если не Redis), resize_cache/.

GlusterFS — распределённая FS с репликацией, без единой точки отказа. Сложнее в настройке, но нет SPOF при выходе NFS-сервера.

Распределённый кэш

Без общего кэша каждый веб-узел имеет свой изолированный файловый кэш. После обновления товара инвалидация происходит только на одном узле — остальные отдают устаревшие данные.

// /bitrix/.settings.php — единый для всех нод
'cache' => [
    'value' => [
        'type' => 'memcache',
        'memcache' => [
            ['host' => '10.0.0.30', 'port' => 11211],
            ['host' => '10.0.0.31', 'port' => 11211],
        ],
        'sid' => 'bitrix_production',
    ],
],

Синхронизация файлов конфигурации

.settings.php, dbconn.php и php_interface/ должны быть идентичны на всех узлах. Используем rsync через cron или ansible:

# Мастер-нода синхронизирует конфиги на остальные
rsync -az /var/www/bitrix/bitrix/.settings.php web-02:/var/www/bitrix/bitrix/
rsync -az /var/www/bitrix/bitrix/.settings.php web-03:/var/www/bitrix/bitrix/

В production-окружениях конфигурация хранится в Git и деплоится через CI/CD одновременно на все ноды.

Сроки

Проектирование и развёртывание кластера из 3 веб-нод с NFS-хранилищем, репликацией БД и Memcached — 5–10 рабочих дней в зависимости от сложности проекта и текущего состояния инфраструктуры.