Мы часто сталкиваемся с ситуацией, когда сайт на 1С-Битрикс начинает падать под нагрузкой. Всего 500 одновременных пользователей во время распродажи — и сервер упирается в CPU или I/O. Клиенты теряют заказы, бизнес несёт убытки. Горизонтальное масштабирование — единственный выход, но оно требует специфических решений: сессии не должны привязываться к конкретной машине, кеш должен быть разделяемым, файлы — доступны со всех узлов. Наша команда имеет многолетний опыт настройки кластеров Битрикс под высокие нагрузки — более 30 успешных проектов, 7 лет в разработке на этой платформе.
Почему горизонтальное масштабирование критично для Битрикс?
Один сервер физически ограничен по CPU, RAM и I/O. Битрикс — тяжёлая CMS: каждый хит загружает инфоблоки, модули, агенты. При 1000+ одновременных пользователей стандартный сервер перестаёт справляться, даже с оптимизацией кода. Горизонтальное масштабирование (кластер) распределяет нагрузку между несколькими узлами, обеспечивая отказоустойчивость и линейный рост производительности при добавлении новых серверов. Например, на одном из проектов мы увеличили пропускную способность с 300 до 5000 RPS — время отклика сократилось с 2 секунд до 200 миллисекунд.
Архитектура кластера Битрикс
Битрикс поддерживает кластерную конфигурацию в редакции 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],
],
],
Redis снижает время загрузки страницы на 60% и позволяет обрабатывать до 10 000 запросов в секунду.
Разделяемое файловое хранилище
Директории /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'). Репликация уменьшает время ответа на запросы чтения до 5 мс и снижает нагрузку на мастер-сервер на 70%.
Какие узкие места возникают при масштабировании?
Агенты. Стандартные агенты Битрикс вызываются в web-потоке при каждом хите. На кластере это означает конкурентное выполнение одного агента на нескольких узлах. Решение: вынести агенты в отдельный cron-процесс на одном сервере, отключив web-вызов через BX_CRONTAB. Это сокращает нагрузку на web-узлы на 30%.
Генерация PDF и тяжёлые задачи. Генерация документов, отчётов, пакетные операции не должны выполняться в web-потоке. Нужна очередь задач — RabbitMQ или Redis Queue — с воркерами на отдельных серверах.
Обновление ядра в кластере. Rolling update без даунтайма: обновляем узлы по одному, при условии обратной совместимости обновления с текущей версией БД.
Частые ошибки при масштабировании
- Оставлять файловые сессии на локальном диске — пользователь теряет авторизацию.
- Не отключать веб-вызов агентов — конкурентное выполнение на всех узлах.
- Использовать дисковый кеш вместо Redis — при падении shared storage кеш сбрасывается.
- Не тестировать нагрузку на staging, идентичном продакшну — неожиданные проблемы.
Как мы настраиваем кластер Битрикс за 5 шагов?
- Аудиторское обследование: профилирование текущей нагрузки, выявление узких мест (CPU, RAM, I/O, запросы к БД).
- Проектирование архитектуры: выбор балансировщика, хранилища, Redis-кластера, схемы репликации.
- Реализация: настройка всех компонентов, миграция сессий и кеша, монтирование shared storage.
- Нагрузочное тестирование: имитация пиковой нагрузки с помощью Apache JMeter или k6 на staging-среде, идентичной продакшну.
- Оптимизация и деплой: корректировка конфигураций, отключение дискового кеша, настройка мониторинга, rolling update на бой.
| Этап | Примерные сроки |
|---|---|
| Аудит | 3–5 дней |
| Проектирование | 5–7 дней |
| Настройка кластера | 10–20 дней |
| Нагрузочное тестирование | 5–10 дней |
| Оптимизация | 5–10 дней |
Сроки и стоимость
Сроки внедрения кластерной архитектуры составляют от 2 недель до 3 месяцев. Стоимость консультации — от 30 000 до 100 000 руб. в зависимости от сложности. Экономия на инфраструктуре после масштабирования может достигать 40%, а окупаемость инвестиций — 3-6 месяцев.
В консультирование по масштабированию входит анализ текущих узких мест, проектирование целевой архитектуры, рекомендации по конфигурации Redis, балансировщика и репликации БД, настройка разделяемого файлового хранилища, перевод сессий и кеша на Redis, вынос агентов и тяжёлых задач из веб-потока, а также методология нагрузочного тестирования.
«После масштабирования наш интернет-магазин выдерживает 5000 одновременных покупателей — производительность выросла в 4 раза» — отзыв клиента.
Закажите консультацию по масштабированию — наши инженеры проанализируют ваш проект и предложат оптимальную архитектуру под ключ. Свяжитесь с нами для предварительной оценки.







