Настройка Cloudflare кеширования для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка Cloudflare кеширования для 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • 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С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка 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 условием выше)

Purge при изменении контента

Когда в Битрикс меняется товар или раздел — кеш 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 для корзины
  • Purge при изменении контента через события инфоблока
  • Настройка долгого кеша для статики с fingerprinting
  • Мониторинг hit-rate, анализ ложных байпасов

Сроки: 3–5 дней базовая настройка. 1–2 недели с purge-интеграцией и мониторингом hit-rate.