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

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

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

Стандартний Cloudflare-кеш без налаштування для Бітрікса марний або шкідливий: або кешує лише статику і не впливає на TTFB сторінок, або — при неправильних правилах — кешує сторінку кошика одного користувача і віддає її іншому. Правильне налаштування кешування Cloudflare для Бітрікс вимагає розуміння того, що можна кешувати на CDN, що — лише в браузері, а що не можна кешувати взагалі.

Що кешуємо на Cloudflare, що — ні

Тип сторінок 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 (новий механізм, що замінює Page 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-сторінок каталогу:

Expression:
(http.request.uri.path matches "^/catalog/")
and not (http.request.uri.path contains "/compare/")
and not (http.request.uri.query contains "sessid")
and not (http.cookie contains "BITRIX_SM_SALE_UID")

Edge TTL: 10 minutes
Browser TTL: 1 minute
Cache Status: Cache everything

Ключова умова: якщо в cookie є BITRIX_SM_SALE_UID (кошик не порожній) — не кешуємо. Інакше сторінка каталогу з кнопкою «Вже в кошику» буде віддаватися всім користувачам без винятку.

Кеш-ключ і Vary

За замовчуванням 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 має інвалідуватися. Два підходи:

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 або повне очищення зони.

Практична користь від Edge Cache

При правильному налаштуванні сторінки каталогу віддаються з Cloudflare edge за 20–50 мс замість 200–800 мс із сервера. Навантаження на PHP-FPM і базу даних при піках трафіку знижується в 5–20 разів — Cloudflare поглинає більшу частину запитів.

Склад робіт

  • Cache Rules: bypass для персональних, кешування для публічних
  • Кеш-ключ, Cookie conditions для кошика
  • Очищення при зміні контенту через події інфоблока
  • Налаштування довгого кешу для статики з fingerprinting
  • Моніторинг hit-rate, аналіз помилкових байпасів

Терміни: 3–5 днів базове налаштування. 1–2 тижні з purge-інтеграцією та моніторингом hit-rate.