Cloudflare воспринимают как «тот сервис, который ускоряет сайт и защищает от DDoS». Подключил — иконка в браузере стала другой, сайт вроде работает быстрее. На этом знания заканчиваются.

На деле Cloudflare — платформа, которая давно вышла за рамки CDN. У них 310+ точек присутствия по всему миру, через их сеть проходит около 20% всего интернет-трафика. Это значит, что у них накоплена инфраструктура, которую мало кто может позволить себе строить самостоятельно.

Поговорим о том, чем Cloudflare реально полезен — помимо кэширования статики.

DNS с защитой на уровне сети

Когда переносишь домен на Cloudflare DNS, получаешь не просто быстрый резолвинг. Cloudflare скрывает реальный IP твоего сервера за своей сетью — это называется проксирование (оранжевое облачко в панели). Атаки идут на Cloudflare, а не на твой VPS.

DNS у них реально быстрый. По данным DNSPerf, Cloudflare стабильно держится в топ-3 по скорости резолвинга в мире — медиана около 10–14 мс глобально.

Ещё один плюс: DNS-записи с TTL от 1 минуты. При миграции или аварии можно переключить трафик между серверами за считанные минуты, не ждать часами, пока обновятся записи у провайдеров.

WAF — файрвол для веб-приложений

WAF (Web Application Firewall) фильтрует HTTP-трафик до того, как он доходит до твоего сервера. Cloudflare WAF работает на уровне их сети — плохой запрос блокируется ещё до того, как сервер его обработал.

Что блокирует:

  • SQL-инъекции
  • XSS-атаки
  • Попытки обхода аутентификации
  • Сканирование уязвимостей (боты типа Nuclei, sqlmap)
  • Эксплуатацию известных CVE

В бесплатном плане есть базовые управляемые правила. В Pro ($20/мес) подключается расширенный набор правил OWASP и Cloudflare Managed Rules — это уже серьёзная защита для большинства проектов.

Можно писать свои правила. Например, заблокировать все запросы из определённой страны или пропускать только трафик с нужными заголовками. Синтаксис простой, есть визуальный редактор.

Пример кастомного правила:

(http.request.uri.path contains "/wp-admin" and ip.geoip.country ne "RU")

Блокирует доступ к админке WordPress для всех, кроме России. Грубо, но работает.

Cloudflare Workers — serverless прямо на сети

Workers — это serverless-платформа, которая выполняет JavaScript прямо на узлах Cloudflare. Твой код работает на сервере, ближайшем к пользователю — без холодного старта, без регионального деплоя.

Что можно делать:

  • Модифицировать запросы и ответы на лету (A/B тесты, персонализация)
  • Делать edge-прокси с кастомной логикой
  • Обрабатывать webhooks
  • Генерировать динамические OG-изображения
  • Реализовывать rate limiting со сложной логикой
  • Строить лёгкие API без сервера

Бесплатный план: 100 000 запросов в день. Платный ($5/мес) — 10 миллионов запросов в месяц, после — $0.50 за миллион. Дешевле, чем AWS Lambda или Vercel Edge Functions при сопоставимой нагрузке.

Пример Worker, который добавляет security headers к любому ответу:

export default {
  async fetch(request) {
    const response = await fetch(request);
    const newResponse = new Response(response.body, response);
    newResponse.headers.set('X-Frame-Options', 'DENY');
    newResponse.headers.set('X-Content-Type-Options', 'nosniff');
    newResponse.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin');
    return newResponse;
  }
}

Деплоится командой wrangler deploy. Работает глобально через 30 секунд.

Cloudflare Pages — хостинг для фронтенда

Pages — конкурент Vercel и Netlify. Подключаешь GitHub/GitLab репозиторий, настраиваешь команду сборки, и Cloudflare сам деплоит при каждом пуше.

Что включено бесплатно:

  • Неограниченные сайты
  • 500 сборок в месяц
  • Кастомные домены с SSL
  • Preview-деплои для пулл-реквестов
  • Интеграция с Workers (Functions)

Скорость раздачи статики через Pages — одна из лучших на рынке, потому что файлы живут прямо в сети Cloudflare, без отдельного CDN поверх. Для React, Vue, статического сайта на Hugo или Astro — реально хороший вариант. Бесплатно и быстро.

R2 — объектное хранилище без платы за трафик

R2 — S3-совместимое хранилище. API такой же, как у Amazon S3, можно использовать те же SDK. Но есть ключевое отличие: исходящий трафик бесплатный.

У AWS S3 платишь за каждый гигабайт, который скачивают пользователи. Если сайт с медиа-контентом и большим трафиком — это выходит в серьёзные деньги. R2 берёт только за хранение ($0.015/ГБ/мес) и операции записи, а раздача — бесплатно.

Для кого это важно:

  • Сайты с видео или большими файлами для скачивания
  • Бэкапы, которые нужно хранить и иногда восстанавливать
  • Хранение медиа для пользовательских загрузок

Ограничение: нет такого же гибкого географического распределения данных, как у AWS. Но для большинства проектов это не критично.

Cloudflare Tunnel — безопасный доступ без открытых портов

Tunnel позволяет опубликовать локальный сервис в интернете без открытия портов на файрволе. Устанавливаешь cloudflared на сервер, он устанавливает зашифрованный туннель к Cloudflare, и трафик идёт через него.

Зачем это нужно:

  • Публикация сервиса, который за NAT или у провайдера без белого IP
  • Не нужно открывать 80/443 порт напрямую
  • Можно спрятать реальный IP сервера
  • Быстрый деплой для демо-стендов

Команда для запуска туннеля:

cloudflared tunnel --url http://localhost:3000

Через несколько секунд получаешь публичный HTTPS-адрес. Удобно для разработки и демонстрации клиентам — именно так мы в REEXY часто показываем промежуточные версии проектов без поднятия отдельного staging-сервера.

Zero Trust Access — контроль доступа к внутренним инструментам

Бесплатно до 50 пользователей. Zero Trust Access позволяет закрыть любой URL за аутентификацией — через Google, GitHub, email OTP, SAML.

Практический сценарий: у тебя есть внутренний дашборд, Grafana или staging-среда. Не хочешь делать его публичным и городить VPN. Настраиваешь Access — и к нему пускают только после входа через корпоративный Google-аккаунт.

Пользователь заходит по обычному URL, его редиректит на страницу входа, после аутентификации — пропускают. Никакого VPN, никаких сложных конфигураций на клиентских машинах.

Rate Limiting — защита API от перебора

Встроенный rate limiting работает на уровне правил. Можно ограничить количество запросов к конкретному endpoint по IP, по кукам, по заголовкам.

Пример: ограничить /api/login до 5 запросов в минуту с одного IP. Превысил — получает 429, можно показать капчу или заблокировать на час.

Это особенно важно для форм входа, API авторизации, endpoint-ов регистрации. Перебор паролей становится нерентабельным даже без сложной логики на стороне сервера.

В бесплатном плане — 1 правило rate limiting. В Pro и выше — без ограничений по количеству правил.

Analytics без JavaScript-трекера

Cloudflare Analytics собирает данные о трафике на уровне сети — без скрипта на странице, без cookies. Это значит:

  • Блокировщики рекламы не мешают
  • GDPR-проблем меньше — нет передачи данных третьим сторонам
  • Видишь реальный трафик, включая ботов

Данные: запросы, уникальные пользователи, страны, статус-коды, кэш-хиты. Не так подробно, как Google Analytics, но для технического мониторинга достаточно.

Есть ещё Cloudflare Web Analytics — легковесный трекер без кук, бесплатная альтернатива GA с простым интерфейсом. Если нужна аналитика поведения без данных в Google — хороший вариант.

Типичный стек на Cloudflare для небольшого проекта

Как это всё собирается вместе:

  • DNS + CDN + WAF — базовая защита и ускорение, бесплатно
  • Workers — лёгкая API-логика или edge-middleware
  • Pages — хостинг фронтенда
  • R2 — хранение медиафайлов
  • Tunnel — доступ к бэкенду без открытых портов

Всё это можно собрать бесплатно или за $5–20 в месяц. Это полноценная инфраструктура для стартапа или небольшого продукта — без отдельных контрактов с AWS, GCP и прочими.

Что не так хорошо

Честно про минусы.

Кэширование может подводить. По умолчанию Cloudflare кэширует агрессивно, и иногда пользователи видят старую версию страницы после деплоя. Нужно настраивать Cache-Control заголовки и знать, когда чистить кэш вручную.

Debugging сложнее. Когда между пользователем и сервером стоит Cloudflare, отлаживать проблемы труднее. Нужно уметь читать заголовки типа CF-Cache-Status и CF-Ray, понимать, где именно упало.

Vendor lock-in для Workers. Workers API немного отличается от стандартного Node.js. Если написал много логики на Workers — мигрировать куда-то ещё будет больно.

Geo-blocking работает не идеально. База геолокации не всегда точна, особенно для мобильных сетей и VPN-пользователей.

Платные планы дорожают. Pro — $20/мес за домен. Если доменов 10 — это $200/мес. Для студии с большим портфолио накапливается.

С чего начать

Если ещё не используешь Cloudflare — начни с малого: перенеси DNS, включи проксирование, посмотри на WAF-аналитику за неделю. Уже это покажет, что происходит с трафиком на твоём сайте и сколько мусора прилетает.

Дальше — по потребности. Если есть локальный сервис без белого IP — попробуй Tunnel. Если нужна защита форм от перебора — настрой rate limiting. Если хочешь убрать JavaScript-трекер — переключись на Cloudflare Analytics.

Многие функции бесплатны. Попробовать — ничего не стоит.