Cloudflare — это глобальная сеть, которая действует как посредник между вашим сервером и пользователями. Трафик проходит через ближайший дата-центр Cloudflare (300+ точек присутствия), что ускоряет загрузку и фильтрует вредоносные запросы до их попадания на ваш сервер.
Что делает Cloudflare
- CDN — кэширует статический контент на серверах по всему миру
- DDoS-защита — автоматически блокирует атаки объёмом до терабит
- DNS — быстрый авторитетный DNS с TTL от 1 минуты
- SSL/TLS — бесплатный HTTPS без сертификата на сервере
- Файрволл — правила блокировки по IP, стране, User-Agent
- Оптимизация — минификация JS/CSS/HTML, сжатие изображений
Планы Cloudflare
| План | Цена | Ключевые фичи |
|---|---|---|
| Free | $0 | CDN, DDoS L3/L4, SSL, базовый WAF, 3 Page Rules |
| Pro | $20/мес | WAF OWASP, Image Optimization, 20 Page Rules |
| Business | $200/мес | Custom WAF, 100% SLA, PCI DSS |
| Enterprise | По запросу | Выделенные IP, кастомная защита |
Как Cloudflare ускоряет сайт
- Пользователь запрашивает example.com
- DNS возвращает IP ближайшего POP Cloudflare
- Cloudflare отдаёт кэшированный контент (статика) без обращения к серверу
- Динамические запросы проксируются на ваш сервер через оптимизированный канал
Реальный IP сервера скрыт
Когда ваш домен подключён к Cloudflare в режиме «Proxied» (оранжевое облако), реальный IP сервера не виден в DNS. Это затрудняет прямые DDoS-атаки на ваш сервер.
Типичные ошибки при подключении
| Ошибка | Причина | Что делать |
|---|---|---|
| Error 521: Web Server Is Down | Cloudflare не может достучаться до сервера — веб-сервер упал или файрволл блокирует IP Cloudflare | Проверьте, что Nginx/Apache запущен, и разрешите диапазоны IP Cloudflare в файрволле |
| Error 522: Connection Timed Out | Сервер не отвечает за отведённое время — перегружен или порт 80/443 закрыт | Проверьте нагрузку сервера и правила iptables/ufw для портов 80 и 443 |
| Error 525: SSL Handshake Failed | Не удалось установить TLS-соединение между Cloudflare и origin-сервером | Проверьте срок действия SSL-сертификата на сервере и режим SSL/TLS в Cloudflare |
| ERR_TOO_MANY_REDIRECTS в браузере | Режим SSL/TLS «Flexible», а сервер сам редиректит HTTP на HTTPS — возникает цикл | Смените режим на «Full» или «Full (strict)» в разделе SSL/TLS |
| SSL_ERROR_RX_RECORD_TOO_LONG в браузере | На порту 443 сервера всё ещё работает обычный HTTP, а не HTTPS, которого ждёт Cloudflare | Настройте валидный HTTPS на origin-сервере или временно переключите режим на «Flexible» |
Сравнение Cloudflare с альтернативами
| Вариант | CDN | DDoS-защита | Порог входа |
|---|---|---|---|
| Cloudflare (Free) | Да, 300+ точек присутствия | Включена без ограничений по трафику | Бесплатно, нужна лишь смена NS-серверов |
| Прямое подключение без CDN | Нет | Только средствами хостинга | Не требует настройки, но сервер уязвим напрямую |
| Другой CDN (например BunnyCDN) | Да, платный по трафику | Базовая, без отдельного WAF на бесплатном тарифе | От нескольких центов за ГБ трафика |
Когда Cloudflare не подходит
- Приложению нужны долгоживущие WebSocket-соединения со сложной маршрутизацией — на бесплатном плане возможны обрывы, для стабильности нужен план Enterprise
- Регуляторные требования запрещают передавать трафик через инфраструктуру третьей стороны за пределами юрисдикции — Cloudflare тут не подойдёт вовсе
- Нужен полный контроль над TLS-терминацией и собственными шифрами на границе сети — проксирование через Cloudflare этого не даёт
- Сайт уже стоит за другим CDN или балансировщиком, и удвоение прокси-слоёв только усложнит диагностику проблем
Пошаговое подключение домена описано в статье «Подключение сайта к Cloudflare: пошаговая инструкция», а детали DDoS-защиты — в статье «DDoS-защита Cloudflare: как работает и как настроить».
Проверка результата
После подключения домена убедитесь, что трафик действительно идёт через Cloudflare:
# NS-серверы домена должны быть cloudflare
dig NS example.com +short
# Заголовок cf-ray подтверждает проксирование через Cloudflare
curl -sI https://example.com | grep -i "cf-ray"
# Проверка реального IP в заголовках ответа (не должен совпадать с origin)
curl -sI https://example.com | grep -i "server"
# SSL-сертификат должен быть выпущен для домена, а не самоподписан
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer
Если нужен доступ к серверу без открытых портов вообще, следующий шаг — статья «Cloudflare Tunnel: доступ к серверу без публичного IP».