Коротко. Когда сайт не открывается, идите от внешнего к внутреннему: сначала проверьте, проблема локальная или глобальная (откройте с телефона), затем DNS, затем TCP-связность и SSL, и только потом сам сервер и приложение. 90% случаев — это DNS, просроченный проверку SSL, упавший origin или блокировка firewall/Cloudflare. Этот чек-лист из 10 шагов с командами сужает причину за несколько минут.
Шаги 1-2. Локально или у всех? Проверьте DNS
Шаг 1. Откройте сайт с телефона по мобильному интернету и через сервис вроде «down for everyone». Если у вас не грузится, а у других работает — проблема в вашей сети, кэше или резолвере, а не в сайте.
Первый вопрос всегда: «это у меня или у всех?». Не тратьте время на сервер, если падение видно только из вашей точки.
Шаг 2. Проверьте DNS — резолвится ли домен в IP:
dig example.com +short # должен вернуть IP
nslookup example.com
# Пусто или NXDOMAIN — проблема с DNS-записями
Нет IP — переходите к DNS-проверке и статье домен не резолвится.
Шаги 3-4. TCP-связность и SSL-сертификат
Шаг 3. Проверьте TCP-связность и ICMP:
ping example.com # отвечает ли хост на ICMP
curl -Iv --connect-timeout 10 https://example.com
Если Ping идёт, а curl висит на «Connected» без ответа — origin или приложение не отвечает.
Шаг 4. Проверьте SSL-сертификат и срок действия:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
# notAfter в прошлом = сертификат просрочен
Просроченный сертификат — частая причина «сайт не открывается» с предупреждением браузера. См. SSL-инспектор.
Шаг 5. Посмотрите код ответа
| Код | Что значит | Куда копать |
|---|---|---|
| NXDOMAIN | DNS не резолвится | DNS Lookup, регистратор |
| 522 / 521 | Cloudflare не достучался до origin | Origin, firewall |
| 525 / 526 | SSL между Cloudflare и origin | Сертификат origin |
| 1020 | Блокировка WAF/Firewall Cloudflare | Правила безопасности |
| 500 / 502 / 503 | Ошибка приложения/бэкенда | Логи приложения, PHP/БД |
| Timeout | Сервер не отвечает | Нагрузка, сеть, origin down |
Шаги 6-7. Origin за CDN и firewall
Шаг 6. Если перед сайтом Cloudflare/CDN, постучитесь к реальному IP origin'а, минуя его:
curl -Iv --resolve example.com:443:203.0.113.10 https://example.com
Так вы поймёте, на чьей стороне проблема — CDN или origin.
Шаг 7. Проверьте firewall и блокировки:
- Не забанил ли fail2ban ваш IP или IP Cloudflare?
- Открыты ли порты 80/443 в ufw/iptables/security group?
- Не сработал ли rate limit?
Шаги 8-9. Веб-сервер, приложение и срок домена
Шаг 8. Проверьте веб-сервер и приложение:
- Запущен ли nginx/Apache:
systemctl status nginx. - Слушает ли он 80/443:
ss -tlnp | grep -E ':80|:443'. - Что в логах:
tail -f /var/log/nginx/error.log. - Жива ли БД и не исчерпаны ли воркеры PHP-FPM.
Шаг 9. Проверьте срок домена и хостинга — банальная, но частая причина: истёк срок регистрации домена или оплаты хостинга. Проверьте WHOIS и письма от регистратора/хостера.
Шаг 10. Проверьте из нескольких регионов
Сайт может лежать только из одной страны (региональный сбой провайдера, гео-блок). Проверка из RU/EU/US покажет масштаб.
Если сайт открывается из США, но не из РФ — это не «сайт лёг», а сетевая или гео-проблема между вами и сервером.
Как enterno.io помогает
enterno.io собирает большинство шагов этого чек-листа в один экран. HTTP-чекер показывает код ответа и заголовки, DNS-проверка — записи, SSL-инспектор — сертификат и срок. Мониторинг аптайма проверяет сайт каждую минуту (30 секунд на старших планах) и шлёт алерт в Telegram/Slack/email/webhook раньше, чем вы заметите падение. Мультирегиональная проверка (RU/EU/US) сразу отвечает на вопрос «лежит глобально или локально». Бесплатный план — 10 мониторов и 48+ инструментов диагностики. enterno.io диагностирует и предупреждает — починку на сервере делает владелец.
FAQ
С чего начать, если ничего не понятно?
С шага 1: откройте сайт с телефона. Это мгновенно делит проблему на «локальную» и «глобальную» и экономит часы.
Сайт открывается у меня, но клиент жалуется?
Проверьте из нескольких регионов и резолверов. Возможно, у клиента старый DNS-кэш, гео-блок или региональный сбой провайдера.
Как отличить проблему DNS от проблемы сервера?
Если dig не отдаёт IP — это DNS. Если IP есть, но curl висит или отдаёт 5xx — это сервер/приложение.
Что делать, если падения короткие и неуловимые?
Настройте мониторинг сайтов с интервалом 1 минута — он поймает то, что ручная проверка пропускает. См. диагностику периодических падений.
Следующий шаг: прогоните сайт через HTTP-чекер, DNS и SSL, затем включите мониторинг. См. также гайд по мониторингу сайтов.