Налаштування Cloudflare CDN для 1С-Bitrix
Сайт на Bitrix відає статику (JS, CSS, зображення) з того самого сервера, що й PHP. При навантаженні понад 50–100 RPS сервер почина задихатися — не тому що PHP повільний, а тому що Nginx зайнятий раздачею файлів. Cloudflare CDN знімає це навантаження: статика раздається з найближчого edge-сервера, а origin обробляє тільки динаміку.
Що кешувати, а що ні
Cloudflare за замовчуванням кешує файли за розширенням: .js, .css, .jpg, .png, .woff2, .svg та інші. HTML та PHP не кешуються. Для Bitrix це правильна поведінка — динамічні сторінки повинні генеруватися на сервері.
Виключення, які потрібно настроїти через Page Rules або Cache Rules:
-
/upload/resize_cache/— кешувати. Це ресайзи зображень, вони не змінюються після генерації. -
/bitrix/cache/— не кешувати. Внутрішній кеш Bitrix, не призначений для CDN. -
/bitrix/admin/*— bypass. Адміністративна панель не повинна кешуватися. -
/personal/*,/auth/*— bypass. Особистий кабінет, форми авторизації.
Настройка заголовків кешування
Bitrix за замовчуванням не виставляє оптимальні Cache-Control для статики. Nginx зазвичай настроєний з expires 30d для /upload/ та /bitrix/images/. Cloudflare поважає ці заголовки — якщо сервер відає Cache-Control: max-age=2592000, Cloudflare кешуватиме файл 30 днів.
Перевірте конфігурацію Nginx:
location ~* \.(js|css|jpg|jpeg|png|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
Директива immutable повідомляє браузеру, що файл не зміниться — браузер не відправить умовний запит (If-Modified-Since). Для Bitrix це коректно, тому що Vite/webpack додає хеш у назву файлу при кожній збірці.
Browser Cache TTL та Edge Cache TTL
Browser Cache TTL — скільки браузер зберігає файл локально. Встановлюється у Cloudflare Dashboard → Caching → Browser Cache TTL. Рекомендація: «Respect Existing Headers» — нехай Nginx керує.
Edge Cache TTL — скільки Cloudflare зберігає файл на своїх серверах. За замовчуванням визначається заголовками origin-сервера. Через Page Rules можна перевизначити: для /upload/ задайте Edge Cache TTL = 1 місяць.
Мініфікація та оптимізація
Cloudflare пропонує Auto Minify для JS, CSS та HTML. Для Bitrix вимкніть мініфікацію HTML — вона може сломати вставки <script> в компонентах та інлайнові стилі. Мініфікацію JS та CSS можна залишити, але якщо ви вже мініфікуєте на етапі збірки (Vite, webpack) — Cloudflare minify не дасть виграшу й тільки додасть затримку на edge.
Polish (оптимізація зображень) — ввімкніть. Стискує JPEG та PNG без втрати якості (lossy/lossless). Для каталогів з тисячами товарних фотографій економія трафіку досягає 20–30%.
Brotli-стиснення — ввімкніть. Cloudflare стискає текстові відповіді (HTML, JS, CSS) алгоритмом Brotli, який ефективніше gzip на 15–20%.
Перевірка роботи CDN
Після настройки перевірте заголовки відповіді для статичного файлу:
-
cf-cache-status: HIT— файл віданий з кешу Cloudflare. -
cf-cache-status: MISS— файл запрошений з origin (перший запит або кеш істік). -
cf-cache-status: DYNAMIC— Cloudflare не кешує цей ресурс (HTML, PHP).
Якщо бачите DYNAMIC для .js або .css — перевірте, не виставляє ли origin заголовок Cache-Control: no-store або Set-Cookie. Cloudflare не кешує відповіді з Set-Cookie, а Bitrix може виставляти cookie сесії на будь-який запит. Переконайтеся, що для статики Nginx обробляє запит напрямку, без передачі у PHP.







