Доступность сайтов и uptime

Как проверить, работает ли сайт прямо сейчас

Практический алгоритм проверки сайта: отличаем проблему браузера от реальной недоступности, проверяем DNS, TCP/TLS, HTTP-код, время ответа и несколько критичных URL.

Опубликовано: 25 августа 2026 г.Обновлено: 25 августа 2026 г.
Схема пошаговой проверки доступности сайта от DNS и TLS до HTTP и критичных URL

Чтобы понять, работает ли сайт прямо сейчас, недостаточно открыть главную страницу в одном браузере. Ошибка может быть локальной у пользователя, зависеть от DNS, сети, TLS, конкретного URL или отдельной бизнес-функции.

Надёжная проверка идёт слоями: DNS → соединение → TLS → HTTP → содержимое/функция. Это позволяет не только ответить «работает или нет», но и сразу сузить область поиска причины.

Быстрый ответ за минуту

Начните с трёх проверок:

curl -I https://example.com/
curl -sS -o /dev/null \
  -w 'code=%{http_code} total=%{time_total}s\n' \
  https://example.com/

и откройте тот же URL из другой независимой сети, например мобильной.

Если обе сети получают нормальный HTTP-ответ, а проблема остаётся только на одном устройстве, вероятна локальная причина. Если ошибки воспроизводятся независимо — исследуйте инфраструктуру сайта.

Что значит «сайт работает»

Сначала определите критерий.

Для информационного сайта это может быть:

HTTPS устанавливается
AND GET / возвращает 200
AND время ответа приемлемо

Для SaaS этого мало:

главная → 200
/login → 200
критичный API → ожидаемый ответ

Для магазина нужно отдельно контролировать каталог, корзину или checkout. Главная страница способна работать при сломанной оплате.

Уровни проверки сайта от DNS и TLS до HTTP, приложения и критичной пользовательской функции

Шаг 1. Исключите локальную проблему

Проверьте:

  1. приватное окно браузера;
  2. другой браузер;
  3. другое устройство;
  4. другую сеть;
  5. прямой запрос через curl.

Не делайте вывод «сайт лежит» только по одному браузеру. Кеш, расширение, VPN или локальный DNS способны дать отдельный сбой.

Шаг 2. Проверьте DNS

dig example.com

или:

nslookup example.com

Нужно понять:

  • есть ли DNS-ответ;
  • какой IP возвращается;
  • соответствует ли он ожидаемой инфраструктуре.

Если DNS не разрешается, до HTTP-проверки дело не дойдёт.

При недавнем изменении DNS разные resolver могут временно видеть разные значения в рамках TTL и кеширования.

Шаг 3. Проверьте HTTPS и TLS

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  </dev/null

-servername передаёт SNI, что важно для хостинга нескольких доменов на одном IP.

Если TCP/TLS не устанавливается, curl не сможет получить обычный HTTP-код.

Для срока сертификата есть отдельный материал: как узнать срок действия SSL-сертификата.

Шаг 4. Получите реальный HTTP-код

curl -i https://example.com/

или компактно:

curl -sS -o /dev/null \
  -w '%{http_code}\n' \
  https://example.com/

Интерпретация зависит от URL:

  • 200 — HTTP-запрос успешно обработан;
  • 301/302/307/308 — redirect, нужно понять, ожидаем ли он;
  • 401/403 — ограничение доступа;
  • 404 — ресурс не найден;
  • 5xx — server-side/gateway failure.

Сам по себе 200 ещё не доказывает исправность приложения.

Шаг 5. Проверьте redirect без маскировки

Сначала:

curl -i http://example.com/

Посмотрите Location.

Затем при необходимости:

curl -iL http://example.com/

-L следует перенаправлениям. Если сразу использовать только -L, можно не заметить неправильную промежуточную цепочку.

Шаг 6. Измерьте время ответа

curl -sS -o /dev/null \
  -w 'code=%{http_code} total=%{time_total}s\n' \
  https://example.com/

Сайт может формально отвечать, но делать это настолько медленно, что пользователи воспринимают его как недоступный.

Не существует одного универсального порога «нормально» для всех сайтов. Сравнивайте с собственной базовой линией и требованиями критичного сценария.

Шаг 7. Проверьте несколько URL

for url in \
  'https://example.com/' \
  'https://example.com/login' \
  'https://example.com/api/health'
do
  curl -sS -o /dev/null \
    -w "$url -> %{http_code} %{time_total}s\n" \
    "$url"
done

Сравнение полной и частичной недоступности сайта по результатам проверки главной, login и API endpoint

Если главная 200, а login/API 500, сайт не «полностью здоров» — это частичный downtime.

Подробнее: что такое downtime сайта.

Шаг 8. Сравните внешнюю и внутреннюю проверку

Внутри сервера приложение может отвечать:

curl -i http://127.0.0.1:8080/health

но публичный URL быть недоступным из-за DNS, firewall, load balancer, TLS или reverse proxy.

локальный health → 200
публичный HTTPS → ошибка

означает, что проверять нужно путь между пользователем и приложением, а не только процесс приложения.

Если сайт работает у вас, но не у других

Проверьте:

  • DNS из разных resolver;
  • IPv4/IPv6;
  • географические/CDN правила;
  • WAF/IP blocks;
  • разные сети;
  • сертификат и SNI;
  • кеш CDN;
  • конкретные ISP routes.

Один успешный домашний запрос не доказывает глобальную доступность.

Если сайт не работает только у вас

Наиболее полезная последовательность:

  1. открыть через мобильную сеть;
  2. проверить DNS;
  3. отключить локальный proxy/VPN только для диагностики;
  4. проверить curl;
  5. проверить другой DNS resolver;
  6. сравнить IP.

Не меняйте DNS или сетевые настройки без необходимости, если проблема уже локализована в браузере.

Ping — недостаточная проверка

Возможны оба сценария:

ping → OK
HTTPS → FAIL

и:

ping → FAIL
HTTPS → 200

ICMP и HTTPS — разные протоколы и разные политики firewall. Для сайта важнее реальный HTTP/HTTPS-запрос.

Как понять, что сайт восстановился

Один 200 после сбоя недостаточен. Сделайте серию:

for i in {1..20}; do
  curl -sS -o /dev/null \
    -w '%{http_code} %{time_total}\n' \
    https://example.com/
  sleep 2
done

Последовательность подтверждения восстановления сайта несколькими HTTP-проверками после серии ошибок

Проверьте также ключевые URL. Если ответы чередуются, возможно, одна replica за load balancer всё ещё неисправна.

Почему ручной проверки недостаточно

Ручная проверка отвечает только на вопрос «что происходит в эту секунду». Она не показывает:

  • когда начался сбой;
  • сколько он длился;
  • были ли короткие падения ночью;
  • насколько часто повторяется проблема.

Для этого нужна регулярная внешняя проверка с историей результатов.

UpWatch можно использовать для автоматической проверки публичных HTTP/HTTPS URL. Мониторинг не заменяет server logs, но помогает быстро зафиксировать внешний факт недоступности и момент восстановления.

Типичные ошибки

Проверять только главную

Она может быть закеширована, пока API или checkout уже не работают.

Делать вывод по ping

ICMP не проверяет веб-приложение.

Считать любой redirect ошибкой

HTTP→HTTPS redirect может быть полностью ожидаемым.

Считать один успешный запрос восстановлением

При нескольких backend проблема может проявляться через запрос.

Проверять только изнутри сервера

Пользовательский путь включает DNS, сеть, TLS и proxy.

Практический чек-лист

  1. Определить, какой URL/функция должна работать.
  2. Проверить из другой сети.
  3. Проверить DNS.
  4. Проверить TLS/SNI.
  5. Получить HTTP-код через curl.
  6. Проверить redirect.
  7. Измерить время ответа.
  8. Проверить несколько критичных URL.
  9. Сравнить внешний URL и upstream.
  10. После исправления подтвердить восстановление серией запросов.
  11. Для постоянного контроля настроить автоматический мониторинг.

Источники и документация

Частые вопросы

Как быстро понять, сайт не работает у всех или только у меня?

Проверьте тот же URL из независимой сети и через curl. Если ошибка воспроизводится из разных сетей, вероятность проблемы на стороне сайта существенно выше.

Достаточно ли получить HTTP 200?

Нет. Для критичного сервиса нужно проверить нужный URL, время ответа и при необходимости содержимое/API или бизнес-функцию.

Почему ping проходит, а сайт не открывается?

Ping использует ICMP и не проверяет DNS/TLS/HTTP-приложение. Сервер может отвечать на ICMP при неработающем HTTPS.

Почему главная работает, а сайт всё равно считается частично недоступным?

Может не работать login, API, checkout или другая критичная функция. Доступность нужно определять по пользовательскому сценарию, а не только по `/`.

Как убедиться, что сайт восстановился после сбоя?

Сделайте серию запросов к нескольким критичным URL и проверьте стабильные успешные коды и нормальное время ответа, а не один случайный 200.

График uptime сайта с периодами доступности и простоя за месяц
Доступность сайтов и uptime

Что такое uptime сайта и как его рассчитывать

Что означает uptime сайта, как перевести процент доступности в допустимое время простоя и почему корректный расчёт требует заранее определить объект, период и критерий успешной проверки.

Читать материал
Временная шкала downtime сайта с моментами обнаружения сбоя и восстановления
Доступность сайтов и uptime

Что такое downtime сайта и чем он опасен

Что считать downtime сайта, какие бывают уровни недоступности, как измерять простой при дискретных проверках и отличать реальный инцидент от единичной ошибки мониторинга.

Читать материал
Схема возникновения HTTP 503 при временной недоступности приложения или его инфраструктуры
HTTP-ошибки и диагностика

Ошибка 503 Service Unavailable: почему возникает и что делать

Что означает HTTP 503, почему сервис временно перестаёт принимать запросы и как по шагам проверить перегрузку, maintenance, backend-инстансы, зависимости и восстановление.

Читать материал
Схема проверки REST API по соединению, HTTP-коду, времени ответа и JSON-критерию
API и JSON

Как проверить доступность REST API

Практический алгоритм проверки REST API: DNS, TLS, HTTP-код, время ответа, JSON, авторизация и критерии, которые отличают реальную работоспособность от простого HTTP 200.

Читать материал
Схема проверки срока действия SSL-сертификата по полям notBefore и notAfter
SSL, HTTPS, DNS и домены

Как узнать срок действия SSL-сертификата

Как посмотреть даты действия TLS-сертификата в браузере и через OpenSSL, правильно проверить SNI, SAN, цепочку сертификатов и не перепутать сертификат CDN с origin.

Читать материал