Настройка композитного кеша 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С-Битрикс

Композитный режим — один из немногих инструментов Битрикс, способный снизить TTFB с 800 мс до 20–50 мс без изменения серверной инфраструктуры. Принцип: первый запрос к странице выполняется полностью (PHP + БД), результат сохраняется как статический HTML в /bitrix/cache/html/, последующие запросы отдаются напрямую из файла через nginx — PHP вообще не запускается. Динамические блоки (корзина, имя пользователя, остатки) заменяются AJAX-запросами после загрузки страницы.

Требования и предварительная настройка

Для работы композита необходимы:

  • Лицензия «Бизнес» или выше (в «Старте» и «Стандарте» функция недоступна)
  • Модуль bitrix.composite (устанавливается из Маркетплейса, в старых версиях встроен)
  • Правильная конфигурация nginx для отдачи HTML-кеша без PHP

Конфигурация nginx — критический момент. Без неё композит работает «вполовину»: HTML сохраняется, но PHP всё равно вызывается для проверки кеша. Нужно добавить в блок server условие, которое проверяет наличие файла кеша и отдаёт его напрямую:

set $composite_cache "";
if (!-f $document_root/bitrix/cache/html/$host$request_uri/index.html) {
    set $composite_cache "no";
}
if ($composite_cache = "") {
    rewrite ^ /bitrix/cache/html/$host$request_uri/index.html last;
}

Точная конфигурация зависит от версии Битрикс и структуры сайта — официальная документация содержит несколько вариантов для разных схем URL.

Разметка динамических зон

Главная причина проблем с композитом — неправильная разметка динамических блоков. Всё, что не должно попасть в статический кеш, оборачивается тегом bitrix:nocache:

<?$APPLICATION->IncludeComponent("bitrix:sale.basket.basket", ".default",
    array("CACHE_TYPE" => "N"), false);?>

Или в шаблоне компонента через $this->addExternalCSS и явные метки. В современных проектах динамические зоны выносятся в отдельные AJAX-эндпоинты и подгружаются через BX.ajax после загрузки страницы.

Типичные блоки, требующие nocache: корзина и счётчик товаров, блок авторизации / имя пользователя, виджеты сравнения, персонализированные рекомендации, остатки на складе если они меняются часто.

Кейс: новостной портал на Битрикс

Портал с посещаемостью 40 000 уников в сутки, преимущественно анонимные пользователи. TTFB на статьях — 650–900 мс, сервер под нагрузкой в пиковые часы. После настройки композита для страниц статей (динамический только блок «последние комментарии» через AJAX) TTFB упал до 15–30 мс. Нагрузка на PHP-FPM снизилась настолько, что потребовалось уменьшить количество воркеров — они простаивали.

Ограничения и антипаттерны

Композит не работает для авторизованных пользователей по умолчанию — для них всегда выполняется полный PHP-цикл. Есть режим персонализации (bitrix:composite.async), но он требует отдельной проработки. Также страницы с POST-параметрами и страницы из списка исключений (/personal/, /order/) кешируются.

Частая ошибка — включить композит глобально без разметки nocache в нужных местах. Результат: данные одного пользователя попадают в кеш и отображаются другому. Это обнаруживается не сразу и создаёт серьёзные проблемы с безопасностью.

Этапы настройки

Настройка занимает от 1 до 3 дней в зависимости от сложности шаблона и количества динамических блоков. Включает аудит компонентов на странице, настройку nginx, разметку nocache-зон, перевод динамических блоков на AJAX, тестирование под разными сценариями (анон, авторизованный, мобильный).