Налаштування композитного кешу 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування композитного кешу 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування композитного кешу 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, тестування під різними сценаріями (анон, авторизований, мобільний).