Что такое ошибка 521 Cloudflare

Архитектура Cloudflare с origin-сервером
Ошибка 521 — это HTTP-статус, который возвращает Cloudflare, когда не может установить TCP-соединение с вашим origin-сервером. Полный текст ошибки: "Error 521: Web server is down".
Проблема возникает на этапе, когда Cloudflare пытается проксировать запрос пользователя к вашему серверу, но получает отказ соединения. В отличие от ошибок 502-504, которые часто связаны с таймаутами или плохими ответами, ошибка 521 указывает, что Cloudflare не может дойти до сервера вообще.
Основные причины ошибки 521

Настройка nginx на прослушивание всех интерфейсов
- Веб-сервер остановлен — служба nginx, Apache или IIS не запущена.
- Сервер слушает только localhost (127.0.0.1) — в конфигурации указан
listen 127.0.0.1:80, а не0.0.0.0:80. - Сервер работает на нестандартном порту — например, на 8080, а Cloudflare пытается подключиться к 80/443.
- Брандмауэр блокирует порты 80/443 — особенно для IP-адресов Cloudflare.
- Неверный IP в DNS-записи Cloudflare — домен указывает на другой сервер.
- SSL/TLS несовместимы — например, в Cloudflare выбран режим
Full, а на сервере нет SSL-сертификата. - Хостинг-провайдер блокирует Cloudflare — на shared-хостинге требуется явно разрешить IP Cloudflare.
Пошаговая диагностика и решение
Шаг 1: Проверьте, жив ли сервер
Сначала исключите проблему на стороне Cloudflare. Определите реальный IP-адрес вашего origin-сервера (из панели хостинга или через dig с отключённым прокси в Cloudflare). Затем проверьте доступность портов напрямую:
# Linux/macOS
curl -I http://ВАШ_IP:80
curl -I https://ВАШ_IP:443
# Windows PowerShell
Test-NetConnection -ComputerName ВАШ_IP -Port 80
Test-NetConnection -ComputerName ВАШ_IP -Port 443
Если соединение не устанавливается (connection refused/timeout), проблема на сервере. Если получаете HTTP-ответ (200 OK), сервер работает, и проблема, скорее всего, в брандмауэре или настройках Cloudflare.
Также проверьте статус службы:
# systemd (Linux)
systemctl status nginx
systemctl status apache2
# Windows
# Откройте services.msc и найдите службу веб-сервера
Шаг 2: Настройте веб-сервер на внешние подключения
Если сервер запущен, но доступен только по localhost, измените конфигурацию.
Nginx (/etc/nginx/sites-available/ваш_сайт):
listen 80;
# или
listen 0.0.0.0:80;
Уберите listen 127.0.0.1:80;. После изменений выполните nginx -t && systemctl reload nginx.
Apache (/etc/apache2/ports.conf или виртуальный хост):
Listen 80
Или Listen 0.0.0.0:80. Проверьте конфиг: apache2ctl configtest, затем systemctl reload apache2.
IIS:
- Диспетчер IIS → сайт → "Привязки".
- Убедитесь, что есть привязка
httpна*:80(или0.0.0.0:80).
Шаг 3: Настройте брандмауэр
Откройте порты 80 (HTTP) и 443 (HTTPS) для входящих подключений.
Linux (firewalld):
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Linux (iptables):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Сохраните правила (например, iptables-save > /etc/iptables/rules.v4)
Windows:
- "Брандмауэр Защитника Windows" → "Создать правило".
- Для портов 80 и 443 (TCP) разрешите подключение для всех профилей.
- Для большей безопасности добавьте IP-адреса Cloudflare в правила. Актуальный список: https://www.cloudflare.com/ips/.
Шаг 4: Проверьте настройки Cloudflare
- DNS-запись: В панели Cloudflare (DNS → Records) убедитесь, что IP в записи A/AAAA полностью совпадает с IP вашего сервера.
- Режим прокси:
- Оранжевое облако — Cloudflare проксирует трафик. Сервер должен слушать порты 80/443.
- Серое облако — трафик идёт напрямую, Cloudflare не участвует. Подходит, если сервер на нестандартном порту, но вы теряете функции Cloudflare.
- SSL/TLS:
- Если на сервере нет SSL-сертификата, выберите
Flexible. - Если SSL есть, выберите
Full (strict). - Несоответствие режимов вызывает ошибку 521.
- Если на сервере нет SSL-сертификата, выберите
Шаг 5: Если сервер на shared-хостинге
Некоторые хостинги блокируют все входящие подключения, кроме своих. Cloudflare может попасть в блокировку.
- Свяжитесь с поддержкой хостинга.
- Сообщите, что используете Cloudflare и получаете ошибку 521.
- Попросите добавить IP-адреса Cloudflare в исключения брандмауэра.
- Уточните, требуется ли использовать специальные DNS-серверы.
Как предотвратить ошибку 521
- Мониторьте доступность сервера через
curlили сервисы вроде UptimeRobot. - Всегда настраивайте веб-сервер на
0.0.0.0, а не127.0.0.1. - При изменении IP-адреса сервера сразу обновляйте DNS-запись в Cloudflare.
- Настройте брандмауэр с учётом Cloudflare — разрешите их IP-адреса.
- Выбирайте правильный режим SSL/TLS в Cloudflare, соответствующий конфигурации сервера.
- Перед подключением Cloudflare к shared-хостингу уточняйте у провайдера поддержку Cloudflare.
💡 Быстрая проверка: Если сайт работает при прямом доступе по IP, но не работает через домен с Cloudflare — проблема в настройках DNS, брандмауэре или SSL/TLS в Cloudflare.