Консультирование по масштабированию проекта 1С-Битрикс

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

Консультирование по масштабированию проекта 1С-Битрикс

Сайт начинает падать под нагрузкой — 500 одновременных пользователей, распродажа, «чёрная пятница». Один сервер упирается в CPU или I/O. Горизонтальное масштабирование Битрикс возможно, но требует специфических решений: сессии не должны привязываться к конкретной машине, кеш должен быть разделяемым, загружаемые файлы — доступны со всех узлов.

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

Битрикс поддерживает кластерную конфигурацию в редакции Business и выше («Масштабирование»). Компоненты типовой кластерной схемы:

[Балансировщик: nginx / HAProxy]
         |
    +---------+
    |         |
[Web-1]   [Web-2]   ... [Web-N]  — PHP-FPM
    |         |
    +---------+
         |
[Shared storage: GlusterFS / NFS / S3] — /upload/, /bitrix/cache/
         |
[Redis cluster] — сессии, управляемый кеш
         |
[MySQL / PostgreSQL Master] → [Slave-1] [Slave-2]

Сессии и кеш

Сессии. Стандартный PHP хранит сессии в файлах на локальном диске — при нескольких серверах пользователь теряет авторизацию при попадании на другой узел. Решение: перевести сессии в Redis.

В /bitrix/.settings.php:

'session' => [
    'value' => [
        'mode' => 'default',
        'handlers' => [
            'general' => [
                'type' => 'redis',
                'host' => '127.0.0.1',
                'port' => '6379',
            ],
        ],
    ],
],

Управляемый кеш Битрикс (ManagedCache) также переводится на Redis:

'cache' => [
    'value' => [
        'type' => 'redis',
        'redis' => ['host' => 'redis-host', 'port' => 6379],
    ],
],

Разделяемое файловое хранилище

Директории /upload/ и /bitrix/cache/ (дисковый кеш) должны быть общими для всех web-узлов. Варианты:

Решение Когда использовать
NFS Простые конфигурации, один NFS-сервер
GlusterFS Отказоустойчивость, распределённое хранилище
S3-совместимое (MinIO, Ceph) Облачный деплой, большой объём файлов
CDN + объектное хранилище Глобальная доставка медиа

Для Битрикс: модуль disk и загрузки (/upload/) монтируются на общую FS. Кеш лучше перевести на Redis и отключить дисковый кеш полностью.

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

Битрикс поддерживает работу с несколькими хостами БД через DBConnectionPool в /bitrix/.settings.php. Записи идут на Master, чтения — на Slave. Конфигурация:

'connections' => [
    'value' => [
        'default' => [
            'host' => 'db-master',
            ...
        ],
        'slave' => [
            'host' => 'db-slave-1',
            ...
        ],
    ],
],

Кастомный код должен явно указывать соединение для чтения через Application::getConnection('slave').

Узкие места при масштабировании

Агенты. Стандартные агенты Битрикс вызываются в web-потоке при каждом хите. На кластере это означает конкурентное выполнение одного агента на нескольких узлах. Решение: вынести агенты в отдельный cron-процесс на одном сервере, отключив web-вызов через BX_CRONTAB.

Генерация PDF и тяжёлые задачи. Генерация документов, отчётов, пакетные операции не должны выполняться в web-потоке. Нужна очередь задач — RabbitMQ или Redis Queue — с воркерами на отдельных серверах.

Обновление ядра в кластере. Rolling update без даунтайма: обновляем узлы по одному, при условии обратной совместимости обновления с текущей версией БД.

Нагрузочное тестирование

Перед масштабированием — нагрузочное тестирование на staging, идентичном продакшну. Инструменты: Apache JMeter, k6, Yandex.Tank. Тестируем:

  • Страница каталога с фильтром
  • Оформление заказа (транзакции в БД)
  • AJAX-запросы (корзина, фильтр)

Результат: кривая деградации производительности по мере роста нагрузки, bottleneck — CPU, RAM, I/O или БД.

Что входит в консультирование по масштабированию

  • Анализ текущих узких мест под нагрузкой (профилирование, мониторинг)
  • Проектирование целевой кластерной архитектуры
  • Рекомендации по конфигурации Redis, балансировщика, репликации БД
  • Настройка разделяемого файлового хранилища
  • Перевод сессий и кеша Битрикс на Redis
  • Вынос агентов и тяжёлых задач из web-потока
  • Методология нагрузочного тестирования и оценка результата