← К библиотеке
Бизнес Практика

Cloudflare перед сервисом

Если у тебя домен на Cloudflare — это самый предсказуемый фронт по поведению: динамика не кешируется, методы и заголовки проходят из коробки. Показываю настройку за четыре шага и объясняю, почему для РФ-аудитории он идёт вторым номером, а не основным. Практика.

Где Cloudflare хорош, а где нет

Общую базу CDN-фронтинга (XHTTP-инбаунд на origin, режимы GET/POST, nginx) разбирали в теории и в практике Yandex — она общая для всех провайдеров. Здесь только специфика Cloudflare.

Cloudflare — эталон предсказуемости. Но у него полярные плюсы и минусы, и от них зависит, куда его ставить.

Чем хорош:

  • Не кеширует POST и long-GET по умолчанию — динамика проходит как есть.
  • XHTTP работает даже там, где нет WS/gRPC.
  • Бесплатный план, мировой охват.

Чем неудобен из РФ:

  • DNS Cloudflare из РФ медленный.
  • Оплата из РФ недоступна.

Вывод: для российской аудитории как основной фронт он ненадёжен. Его роль — эталон для зарубежа и резерва. Для РФ-аудитории комбинируй: прямой Self-steal Reality основным + XHTTP за CDN резервом, а из РФ-CDN бери Yandex.

Настройка за четыре шага

Если домен уже на NS Cloudflare, весь фронт ставится быстро.

Шаг 1. DNS-запись в режиме Proxied.

Заводишь запись cdn (A → IP ноды) и включаешь Proxied (оранжевое облако). Именно оранжевое облако направляет трафик через сеть Cloudflare — серое (DNS only) просто резолвит IP напрямую и фронта не даёт.

Шаг 2. SSL/TLS → Full.

В панели Cloudflare: SSL/TLS → Overview → Full. Кеш при этом не трогает POST и long-GET (динамика не кешируется по умолчанию), так что специально отключать кеш, как у РФ-CDN, тут не надо.

Если хочешь подстраховаться и явно запретить кеш на XHTTP-пути — заведи Cache Rule через API (сам путь секретный, поэтому вынесен в плейсхолдер):

bash
curl -X POST \
  "https://api.cloudflare.com/client/v4/zones/ZONE_ID/rulesets/phases/http_request_cache_settings/entrypoint" \
  -H "Authorization: Bearer CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "rules": [
      {
        "description": "Bypass cache for XHTTP path",
        "expression": "(http.host eq \"cdn.your-domain.com\" and starts_with(http.request.uri.path, \"/PATH_XHTTP\"))",
        "action": "set_cache_settings",
        "action_parameters": { "cache": false }
      }
    ]
  }'

И держи в голове главное: режим шифрования должен быть именно Full (strict) — тогда Cloudflare проверяет валидность сертификата на origin. Простой Full (без strict) молча принимает самоподписанный серт и открывает дверь для MITM между CDN и нодой.

Шаг 3. XHTTP в режиме packet-up.

На origin поднимаешь тот же XHTTP-инбаунд, что и для любого CDN (см. общую практику), в режиме packet-up — он самый совместимый. XHTTP проходит через Cloudflare даже там, где WS/gRPC заблокированы.

Шаг 4. Хост в Remnawave.

Создаёшь Host: cdn.your-domain.com:443, path=/xh, режим packet-up, TLS. Клиент коннектится на CDN-домен, Cloudflare тянет с origin.

На что обратить внимание

  • Origin закрыть от всех, кроме Cloudflare. Раз клиент ходит только через CDN, прямой доступ к IP ноды не нужен — закрой его фаерволом на диапазоны Cloudflare, чтобы ноду не нашли сканом.
  • Путь /xh — секретный. На origin nginx проксирует в Xray только этот путь без буферизации, всё остальное отдаёт сайт-обманку (как в общей практике).
  • ECH держи выключенным. Отдельная ловушка: с включённым ECH сайт за Cloudflare из РФ может открываться только через VPN — если origin вдруг стал недоступен из РФ, проверь SSL/TLS → Edge Certificates → ECH → Off.

Итог

Cloudflare — самый беспроблемный фронт, если аудитория зарубежная или он у тебя как резерв. Для РФ он второй номер из-за медленного DNS и недоступной оплаты. Держи его в подписке дополнительным хостом рядом с прямым Reality и РФ-CDN — тогда какой-то канал всегда живой.

Механику CDN-фронта смотри в теории; рабочий РФ-фронт с обходом блокировки POST — в практике Yandex CDN.

Следующий гайд CDN-фронтинг: расширенный кейс → Не понравилась статья или что-то непонятно? Напишите мне — помогу или поправлю. @notrealvpn →
Материал носит образовательный характер и посвящён инженерии сетевой инфраструктуры. Вы отвечаете за соблюдение законов своей юрисдикции.