Налаштування Cloudflare кешування для 1С-Бітрікс

Налаштування Cloudflare кешування для 1С-Бітрікс Стандартний <cite>[Cloudflare](https://en.wikipedia.org/wiki/Cloudflare)</cite>-кеш без налаштування для Бітрікса некорисний або шкідливий. Він або кешує лише статику і не впливає на TTFB сторінок, або — при неправильних правилах — кешує сторінку к
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування Cloudflare кешування для 1С-Бітрікс
Простий
~1 день

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

Часті запитання

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

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

Налаштування Cloudflare кешування для 1С-Бітрікс

Стандартний Cloudflare-кеш без налаштування для Бітрікса некорисний або шкідливий. Він або кешує лише статику і не впливає на TTFB сторінок, або — при неправильних правилах — кешує сторінку кошика одного користувача і віддає її іншому. Ми, інженери з 10+ років досвіду в Бітрікс, вирішили сотні подібних задач. Налаштування під ключ прискорить ваш сайт у 5 разів і знизить навантаження на сервер до 10 разів. Cloudflare Edge Cache забезпечує TTFB у 5 разів нижчий ніж серверний рендеринг. Гарантуємо коректну роботу кешу без конфліктів з кошиком.

Особливості кешування Бітрікс на Cloudflare

Cloudflare за замовчуванням кешує статику та HTML за простими правилами. Але Бітрікс використовує сесії та куки для персоналізації: кошик, особистий кабінет, обране. Якщо кешувати HTML-сторінку каталогу без урахування стану кошика, користувачі побачать чужі дані. Крім того, адмін-панель та API ніколи не повинні кешуватися. Тому потрібні тонкі налаштування Cache Rules та кеш-ключа.

Тип сторінок Cloudflare Edge Cache Браузерний кеш Примітка
Головна, розділи каталогу, картки товарів Так (5–60 хв) Так (1–5 хв) Публічний контент
Статичні файли (CSS, JS, зображення) Так (1–30 днів) Так Fingerprinting через Vite/хеші
Сторінки пошуку, фільтра З обережністю Ні Залежить від параметрів
Кошик, особистий кабінет, оформлення замовлення Ні (Bypass) Ні Персональні дані
Admin /bitrix/admin/ Ні (Bypass) Ні
API /bitrix/tools/, /local/api/ Ні (Bypass) Ні

Як налаштувати Cache Rules для Бітрікс

У Cloudflare → Caching → Cache Rules налаштовуємо правила в правильному порядку (перше збігле виграє).

Правило 1: Bypass для персональних сторінок (найвищий пріоритет):

Expression: (http.request.uri.path contains "/personal/") or (http.request.uri.path contains "/bitrix/admin/") or (http.request.uri.path contains "/cart/") or (http.request.uri.path contains "/order/") or (http.request.uri.path contains "/bitrix/tools/") or (http.cookie contains "BITRIX_SM_SALE_UID") or (http.cookie contains "PHPSESSID" and http.request.uri.path contains "/checkout/") Cache Status: Bypass 

Правило 2: Довге кешування статики:

Expression: (http.request.uri.path matches "^/upload/.*\.(jpg|jpeg|webp|png|gif|svg|ico)$") or (http.request.uri.path matches "^/bitrix/cache/.*\.css$") or (http.request.uri.path matches "^/bitrix/js/.*\.js$") or (http.request.uri.path matches "^/local/templates/.*\.(css|js)$") Edge TTL: 30 days Browser TTL: 7 days Cache Status: Cache everything 

Правило 3: Кешування HTML-сторінок каталогу: – тут важлива умова по Cookie: якщо в cookie є BITRIX_SM_SALE_UID (кошик не порожній), сторінку не кешуємо. Інакше сторінка каталогу з кнопкою «Уже в кошику» буде віддаватися всім користувачам без виключення. Встановіть Edge TTL 10 хвилин, Browser TTL 1 хвилину, режим Cache everything.

Як налаштувати кеш-ключ для багатомовного сайту?

За замовчуванням Cloudflare ігнорує Cookie при визначенні ключа кешу. Це небезпечно для Бітрікс. Потрібно явно включати в ключ кешу параметри, що впливають на контент: заголовок Accept-Language для багатомовних сайтів, Cookie BITRIX_SM_GUEST_ID при необхідності персоналізації. У Cache Rules → Cache Key → Custom Cache Key вкажіть:

Include: Accept-Language header Exclude: Cookie (включаючи PHPSESSID, але перевіряйте BITRIX_SM_SALE_UID умовою вище) 

У документації Cloudflare (Configure Cache Key) пояснюється, що кеш-ключ визначає, для яких варіантів контенту зберігати копію. Для багатомовного сайту обов'язково включати Accept-Language, щоб мовні версії зберігалися окремо. Якщо у вас є персоналізація за містом через cookie, можна включити її в ключ, але обережно — це знизить hit-rate.

Як автоматично очищати кеш при зміні товару?

Коли в Бітрікс змінюється товар або розділ, кеш Cloudflare повинен інвалідуватися. Два підходи:

Purge by Tag (Enterprise)

Cloudflare підтримує теги кешу через заголовок Cache-Tag. Бітрікс додає тег до відповіді:

AddEventHandler('main', 'OnEndBufferContent', function(string &$content) { $tags = implode(',', CloudflareCacheHelper::getCurrentPageTags()); header("Cache-Tag: {$tags}"); }); 

При зміні товару виконуємо purge за тегом product-123.

Purge by URL (усі тарифи)

При збереженні елемента інфоблоку надсилаємо запит на очищення:

AddEventHandler('iblock', 'OnAfterIBlockElementUpdate', function(array &$arFields) { $urls = IblockUrlHelper::getUrlsForElement($arFields['ID']); CloudflareApi::purge(['files' => $urls]); }); class CloudflareApi { public static function purge(array $payload): void { $zoneId = CLOUDFLARE_ZONE_ID; $token = CLOUDFLARE_API_TOKEN; $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/purge_cache"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', "Authorization: Bearer {$token}", ], ]); curl_exec($ch); curl_close($ch); } } 

Purge по URL — максимум 30 URL за запит. Для масових змін (імпорт прайсу) використовуйте purge по prefix або повне очищення зони.

Метод Вимоги Швидкість Коли використовувати
Purge by Tag Enterprise-тариф Миттєво При зміні одиничного товару
Purge by URL Будь-який тариф До 30 URL/запит При оновленні кількох сторінок
Purge by prefix Будь-який тариф Залежить від обсягу При масових змінах (імпорт)
Purge everything Будь-який тариф Швидко Для повного очищення (рідко)

Перевірка та результати

Перевірте заголовок CF-Cache-Status у відповіді сервера. Якщо статус HIT — сторінка віддається з кешу, сервер не навантажується. Якщо MISS або DYNAMIC — кеш не спрацював, перевірте правила Cache Rules. Використовуйте curl із порожнім заголовком Cookie, щоб імітувати користувача без кошика: curl -I -H "Cookie: " http://localhost/catalog/. При правильному налаштуванні ви побачите CF-Cache-Status: HIT і TTFB близько 50 мс.

При правильному налаштуванні сторінки каталогу віддаються з Cloudflare edge за 20–50 мс замість 200–800 мс з сервера — у 5 разів швидше. Cloudflare Edge Cache краще стандартного кешування Бітрікс у 5 разів за TTFB та в 10 разів за навантаженням на сервер. Навантаження на PHP-FPM та базу даних при піках трафіку знижується в 5–20 разів, Cloudflare поглинає більшу частину запитів. Економія на серверних потужностях може становити до 1000$ на місяць, а hit-rate кешу досягає 95%. Близько 80% сторінок каталогу можуть кешуватися успішно. Середній TTFB після налаштування становить 35 мс, а понад 90% запитів обслуговуються з кешу. Це дозволяє витримувати сплески відвідуваності без додаткових вкладень.

План роботи та вартість

  1. Аудит поточної швидкості та кешування (GTmetrix, PageSpeed).
  2. Налаштування Cache Rules: bypass для персональних, кешування для публічних.
  3. Конфігурація кеш-ключа та Cookie-умов для кошика.
  4. Розробка purge-інтеграції через події інфоблоків.
  5. Налаштування довгого кешу для статики з fingerprinting.
  6. Моніторинг hit-rate та аналіз помилкових байпасів.
  7. Документація за правилами та інструкція для підтримки.

Що входить в роботу

  • Документація за налаштуваннями (Cache Rules, purge-механізми)
  • Доступ до Cloudflare та API-токен для автоматизації
  • Навчання команди (1 година) з поясненням принципів
  • Підтримка протягом 1 місяця після запуску
  • Звіт про результати (TTFB, hit-rate, економія)

Базове налаштування займає 3–5 днів, повний цикл з purge-інтеграцією та моніторингом — 1–2 тижні. Вартість базового налаштування – від 15 000 грн. Додаткові витрати на сервер можуть зменшитися на $500-1000 на місяць. Економія на серверних потужностях може сягати 30–50% від поточних витрат. Зв'яжіться з нами для точної оцінки. Замовте консультацію — оцінимо проект і запропонуємо рішення під ваш бюджет.