Що означають помилки 52x у Cloudflare
Коди 520-526 — це не помилки самого Cloudflare, а сигнал про те, що edge-сервер не зміг отримати нормальну відповідь від origin-сервера сайту. Різниця між кодами — на якому саме кроці зв'язок обірвався: під час встановлення з'єднання, під час SSL-хендшейка чи вже під час очікування відповіді від застосунку.
Розбирати таку помилку треба з боку origin-сервера, а не з боку Cloudflare: мережа Cloudflare в цей час працює справно, а проблема — у зв'язку з конкретним VDS або в самому веб-сервері на ньому.
Таблиця кодів: що означає кожен
Коротко про типову причину кожного коду з цієї групи:
| Код | Значення | Типова причина |
|---|---|---|
| 520 | Порожня або некоректна відповідь від origin | Веб-сервер впав або повернув пошкоджені заголовки |
| 521 | Origin відхилив з'єднання | Веб-сервер зупинений або порт закритий firewall |
| 522 | З'єднання не встановлено вчасно | Origin недоступний по мережі або перевантажений |
| 523 | Origin не знайдено в маршрутизації | Невірна IP-адреса в DNS-записі A |
| 524 | Перевищено час очікування відповіді | Застосунок відповідає довше 100 секунд |
| 525 | Помилка SSL-хендшейка з origin | Прострочений або невалідний сертифікат на сервері |
Помилка 520: порожня відповідь від сервера
Код 520 означає, що origin прийняв з'єднання, але не віддав коректну HTTP-відповідь. Насамперед варто перевірити лог веб-сервера і подивитися, чи не впав процес у момент запиту:
curl -v -H "Host: example.com" http://203.0.113.10/
tail -n 50 /var/log/nginx/error.log
Часта причина — перевищення ліміту пам'яті PHP-FPM або Apache, через що worker обриває з'єднання посеред відповіді. Варто перевірити ліміти в php.ini і логи PHP-FPM за той самий час.
Помилки 521 і 522: origin не відповідає на з'єднання
521 означає явну відмову — сервер прийняв TCP-пакет і одразу скинув з'єднання. 522 означає, що пакет взагалі не дійшов за відведений час. Перевірка починається з порту:
nc -zv 203.0.113.10 443
systemctl status nginx
Якщо порт закритий — варто перевірити правила firewall на сервері і переконатися, що дозволені підключення з діапазонів IP-адрес Cloudflare. Якщо сервіс сам не запущений, помилка вирішується перезапуском служби і розбором причини падіння в логі systemd.
Помилка 524: перевищено час очікування
524 виникає, коли origin прийняв з'єднання і почав відповідати, але не вклався в таймаут edge-сервера — за замовчуванням 100 секунд. Це типово для важких звітів, імпорту даних або повільних SQL-запитів.
- перевірити повільні запити в лозі MySQL через slow query log
- винести довгу операцію у фонове завдання замість очікування в HTTP-запиті
- додати індекси для таблиць, задіяних у важкому запиті
- для тривалих операцій віддавати проміжну відповідь і статус через окремий endpoint
Помилки 525 і 526: проблеми SSL-хендшейка з origin
525 означає, що origin не зміг завершити SSL-хендшейк з Cloudflare — зазвичай через прострочений, самопідписаний без винятку або невалідний сертифікат. 526 — більш частковий випадок, коли сертифікат не проходить перевірку ланцюга в режимі Full Strict.
Правильне рішення — не вимикати перевірку сертифіката, а поставити на origin коректний сертифікат, наприклад Cloudflare Origin Certificate строком на 15 років, і тримати режим шифрування Full Strict, як описано в статті про режими SSL/TLS.
Підсумок: порядок діагностики помилок 52x
Усі помилки цієї групи вказують на розрив між edge і origin, тому перевірка завжди починається на боці сервера, а не в панелі Cloudflare.
- перевірити, що веб-сервер запущений і слухає потрібний порт
- подивитися логи веб-сервера і PHP-FPM на момент помилки
- перевірити правила firewall і доступ з діапазонів IP-адрес Cloudflare
- у разі 524 — знайти і прискорити повільний запит чи операцію
- у разі 525 і 526 — замінити сертифікат на origin і перевірити режим SSL, або сховати сервер за Cloudflare Tunnel