Коротко. Ошибка 522 означает, что Cloudflare смог найти ваш origin-сервер, но TCP-соединение с ним не установилось вовремя. Cloudflare ждёт ответа origin'а и, не дождавшись, отдаёт 522. Причины: origin перегружен или лежит, firewall блокирует IP-диапазоны Cloudflare, неверный A-record указывает не туда, или сервер слишком долго устанавливает соединение. Начните с проверки, что origin вообще отвечает напрямую.
Что такое 522 и где разрыв
522 — это ошибка уровня Cloudflare, не вашего сайта. Цепочка такая: браузер → Cloudflare → origin. На последнем шаге Cloudflare открывает TCP-соединение к вашему серверу и ждёт. Если соединение не устанавливается за отведённое время (handshake не завершён), Cloudflare возвращает 522.
522 — это таймаут TCP-соединения между Cloudflare и origin. 504 — таймаут ответа приложения. Не путайте: 522 значит «не достучался до сервера», а не «сервер думал слишком долго».
Пять причин 522
| Причина | Решение |
|---|---|
| Firewall блокирует IP Cloudflare | Разрешить диапазоны cloudflare.com/ips в iptables/ufw/security group |
| Origin перегружен (нет свободных воркеров) | Поднять лимиты, проверить CPU/RAM, масштабировать |
| Веб-сервер не слушает на нужном проверку портов | Проверить, что nginx/Apache слушает 80/443 |
| Неверная A-запись (Cloudflare стучится не туда) | Сверить серый/оранжевый облако и реальный IP origin'а |
| Слишком высокий keepalive/низкий backlog | Тюнинг сервера, увеличение somaxconn |
Шаг 1. Проверьте origin напрямую
Обойдите Cloudflare и постучитесь к реальному IP origin'а:
# Узнать реальный IP origin (из DNS-панели, серое облако):
# допустим origin = 203.0.113.10
# Проверить, отвечает ли origin вообще:
curl -Iv --resolve example.com:443:203.0.113.10 https://example.com
# Просто TCP-связность до 443:
curl -Iv --connect-timeout 10 https://203.0.113.10
# Замер времени соединения:
curl -o /dev/null -s -w "connect:%{time_connect} ttfb:%{time_starttransfer} total:%{time_total}\n" https://203.0.113.10
Если origin не отвечает и напрямую — проблема не в Cloudflare, а в вашем сервере или firewall'е.
Шаг 2. Откройте файрвол для Cloudflare
Самая частая причина — firewall на origin'е режет IP Cloudflare. Разрешите официальные диапазоны:
# Получить актуальные диапазоны:
curl -s https://www.cloudflare.com/ips-v4
# Пример для ufw (повторить для каждого диапазона):
sudo ufw allow from 173.245.48.0/20 to any port 443
sudo ufw allow from 103.21.244.0/22 to any port 443
# ... и остальные из списка
Если используете fail2ban или Cloud security group — убедитесь, что Cloudflare-диапазоны в whitelist. Бан одного из IP Cloudflare выглядит как 522 для части посетителей.
Шаг 3. Проверьте загрузку origin'а
- Посмотрите CPU и RAM:
top,htop,free -m. - Проверьте, не исчерпаны ли воркеры nginx/PHP-FPM (логи).
- Поднимите
net.core.somaxconnи backlog, если высокий трафик. - Проверьте лимиты соединений в панели хостинга.
Шаг 4. Сверьте A-запись
Если A-запись указывает на старый или неверный IP, Cloudflare стучится не туда и получает таймаут. Проверьте A-запись и убедитесь, что она ведёт на актуальный origin.
Как enterno.io помогает
HTTP-чекер enterno.io и SSL-инспектор диагностируют, отвечает ли origin отдельно от Cloudflare — это сразу показывает, на чьей стороне проблема. Мониторинг аптайма с интервалом 1 минута (30 секунд на старших планах) ловит короткие 522, которые ручная проверка пропускает, а мультирегиональная проверка (RU/EU/US) показывает, лежит ли origin глобально или только из одной точки. Алерты — Telegram, Slack, email, webhook. enterno.io предупреждает; конфиг Cloudflare и origin'а правит владелец.
FAQ
522 — это проблема Cloudflare или моя?
Почти всегда ваша: Cloudflare не смог установить соединение с вашим origin'ом. Проверьте origin напрямую через curl --resolve.
Чем 522 отличается от 521?
521 (Web Server Is Down) — origin активно отверг соединение. 522 — соединение вообще не установилось (таймаут). 521 чаще значит «сервис не запущен», 522 — «firewall/перегрузка/сеть».
Почему 522 появляется периодически?
Обычно из-за пиков нагрузки или нестабильного firewall/fail2ban. Постоянный мониторинг сайтов с короткими интервалами поможет поймать момент.
Поможет ли увеличить таймаут в Cloudflare?
На платных планах есть настройка таймаута, но это лечит симптом. Корень — медленный или недоступный origin.
Следующий шаг: Проверьте ответ origin через HTTP-чекер, затем SSL-инспектор. См. также диагностику периодических падений и настройте мониторинг.