Интеграция 1С-Битрикс с Cloudflare

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

Интеграция 1С-Битрикс с Cloudflare

1С-Битрикс исторически рассчитан на прямое соединение клиента с сервером. При размещении за Cloudflare ломается определение IP пользователя, перестаёт работать проактивная защита, композитный кэш конфликтует с CDN-кэшем, а модуль security начинает банить IP-адреса Cloudflare вместо реальных посетителей. Интеграция — это не «подключить DNS и забыть», а системная настройка обоих сторон.

Проблема определения IP

Cloudflare проксирует трафик, подставляя свой IP в REMOTE_ADDR. Реальный IP клиента передаётся в заголовке CF-Connecting-IP. Битрикс использует $_SERVER['REMOTE_ADDR'] повсеместно: в модуле security (проактивный фильтр, WAF), в модуле statistic (статистика посещений), в модуле sale (геолокация для доставки).

Решение — в файле dbconn.php (или /bitrix/.settings.php) переопределить REMOTE_ADDR:

if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
}

Этот код должен выполняться до подключения ядра Битрикс. Размещайте его в самом начале /bitrix/php_interface/dbconn.php.

Безопасность: проверяйте, что запрос действительно пришёл от Cloudflare. Список IP-диапазонов Cloudflare доступен по адресу https://www.cloudflare.com/ips-v4. Если сервер принимает прямые подключения в обход Cloudflare, злоумышленник может подделать заголовок CF-Connecting-IP. Закройте порт 80/443 для всех IP, кроме диапазонов Cloudflare, на уровне файрвола.

Конфликт кэшей: композит vs. Cloudflare

Композитный кэш Битрикс (composite) отдаёт HTML-снимок страницы без выполнения PHP. Cloudflare Cache тоже кэширует HTML. Получается двойное кэширование с разными правилами инвалидации — страница обновляется в Битрикс, но Cloudflare продолжает отдавать старую версию.

Варианты решения:

Вариант 1: Отключить кэширование HTML в Cloudflare. В Page Rules задайте Cache Level: Bypass для *.php и динамических страниц. Cloudflare будет кэшировать только статику (JS, CSS, изображения). Композит Битрикс работает штатно. Это рекомендуемый подход для большинства проектов.

Вариант 2: Отключить композит, кэшировать в Cloudflare. Подходит для информационных сайтов с редким обновлением. Настройте Edge Cache TTL в Cloudflare и используйте Cloudflare API для сброса кэша при обновлении контента. Вызов POST /zones/{zone_id}/purge_cache из обработчика OnAfterIBlockElementUpdate.

Вариант 3: Комбинированный. Композит работает для авторизованных (не кэшируется в Cloudflare), Cloudflare кэширует страницы для анонимов. Разделение через Cache-Control: private для авторизованных и Cache-Control: public, max-age=300 для анонимов. Заголовки выставляются в init.php на основании $USER->IsAuthorized().

Настройка SSL

Cloudflare предлагает три режима SSL: Flexible, Full, Full (Strict). Для Битрикс единственный правильный вариант — Full (Strict) с валидным сертификатом на сервере.

При Flexible-режиме Cloudflare подключается к серверу по HTTP. Битрикс не видит HTTPS-соединение, \Bitrix\Main\Context::getCurrent()->getRequest()->isHttps() возвращает false. Результат: бесконечные редиректы, если в настройках сайта включён «Переадресация на HTTPS», или формы отправляются по HTTP.

Если Full (Strict) невозможен (нет сертификата на сервере), используйте Cloudflare Origin Certificate — бесплатный сертификат, который работает только при проксировании через Cloudflare.

Проактивная защита и WAF

Модуль security Битрикс содержит собственный WAF. При работе через Cloudflare оба WAF активны одновременно. Конфликты:

  • Cloudflare WAF блокирует запрос, Битрикс пишет в лог ошибку 403 без деталей — непонятно, кто заблокировал.
  • Правила Cloudflare и Битрикс могут противоречить — Cloudflare пропускает запрос, Битрикс блокирует, или наоборот.

Рекомендация: используйте Cloudflare WAF как первый рубеж (блокировка ботов, DDoS, известных атак), а проактивный фильтр Битрикс — как второй (специфичные для CMS атаки). Не отключайте ни один из них полностью.

Сроки настройки

Задача Срок
DNS, SSL, базовая настройка 2–3 часа
Переопределение IP + файрвол 2–3 часа
Настройка кэширования (Page Rules, композит) 1 день
WAF: согласование правил 1–2 дня
Тестирование (корзина, авторизация, формы, ЛК) 2–3 дня
Мониторинг первую неделю фоново
Итого 1–2 недели

Отдельно учитывайте тестирование интеграций: платёжные системы, callback-уведомления от ЕРИП или банков, webhooks от 1С. Все они обращаются к серверу напрямую, и если порты закрыты для не-Cloudflare IP — уведомления перестанут приходить. Для callback-URL добавьте исключения в файрвол или используйте отдельный поддомен без проксирования.