Skip to content

Ошибка 503 Service Unavailable — что значит и как исправить

HTTP 503 Service Unavailable — код, который сервер сознательно отправляет когда временно не может обработать запрос. Ключевое слово — временно. В отличие от 500 (что-то сломалось) или 502 (приложение не отвечает), 503 — это сознательный ответ сервера: «я знаю что не работаю, попробуй позже».

  • 🚨 Сайт показывает «503 Service Unavailable» или «Сервис временно недоступен»
  • 🔍 Причина — сервер намеренно отдаёт 503: перегрузка, плановые работы, защита
  • 🛠️ Чинится уменьшением нагрузки или завершением плановых работ
  • ⏰ Обычно временное явление

1. Плановые работы (maintenance mode)

Section titled “1. Плановые работы (maintenance mode)”

Самая невинная причина. Админ включил режим «сайт на обслуживании», nginx или CMS отдаёт 503 всем посетителям. WordPress, Bitrix, Laravel — у всех есть такой режим.

CPU на 100%, очередь запросов переполнена, новые запросы система не принимает чтобы не упасть совсем. Это «защитный» 503.

Включены лимиты на запросы (например, limit_req в nginx). Если посетитель/бот делает слишком много запросов за единицу времени — получает 503.

Cloudflare/Stormwall/CDN-провайдер активировал защиту от атаки. Подозрительные запросы получают 503 (или CAPTCHA).

5. Очередь приложения переполнена

Section titled “5. Очередь приложения переполнена”

Например, PHP-FPM с настройкой pm.max_children = 10. При 50 одновременных запросах 40 из них получат 503 пока workers заняты.

6. Балансировщик не нашёл живой бэкенд

Section titled “6. Балансировщик не нашёл живой бэкенд”

Если за балансировщиком стоят 2 сервера приложения и оба упали — балансировщик отдаёт 503.

1. Проверить включён ли maintenance mode

WordPress: проверьте есть ли файл .maintenance в корне сайта. Если есть — это режим обслуживания.

Bitrix: /bitrix/admin/sites_edit.php — настройки сайта.

nginx: проверьте конфиг на наличие правил типа:

return 503;

2. Посмотреть нагрузку:

Terminal window
uptime # load average
top # процессы
htop # удобнее
iostat -x 1 # нагрузка на диск

Если load average > количество CPU × 2 — сервер перегружен.

3. Лог nginx:

Terminal window
sudo tail -100 /var/log/nginx/error.log

Типичные сообщения:

  • limiting requests, excess: ... by zone "..." — сработал rate-limit
  • 1024 worker_connections are not enough — превышен лимит соединений nginx
  • upstream prematurely closed connection — приложение убилось во время обработки

4. Проверить — это от nginx или от приложения:

Terminal window
curl -I https://example.com/some-page

Посмотрите на заголовок Server: и X-Powered-By: в ответе — поможет понять кто отдал 503.

Сценарий A: maintenance mode (вы сами включили) Выключите. WordPress: удалите .maintenance из корня. Bitrix: в админке снимите галку «Сайт закрыт».

Сценарий B: перегрузка сервера

  • Краткосрочно — перезагрузить сервис, упавший в swap
  • Среднесрочно — оптимизировать тяжёлые запросы, добавить кэш (Redis, Memcached)
  • Долгосрочно — увеличить ресурсы сервера или мигрировать на более мощный

Сценарий C: DDoS-атака

  • Подключите Cloudflare (бесплатный план есть)
  • Включите режим «Under attack» если уже подключены
  • Анализируйте логи — узнайте кто атакует, заблокируйте по IP

Сценарий D: rate-limit срабатывает на легитимных пользователей Поднимите лимит в nginx:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;

Или исключите ботов поисковиков и наш MonisiteBot — см. Whitelisting в статье User-Agent.

Сценарий E: workers PHP-FPM не справляются Увеличьте pm.max_children в /etc/php/8.2/fpm/pool.d/www.conf. Но учитывайте память — каждый worker ест 50-200 МБ.

«Воспитанный» 503 обычно содержит заголовок Retry-After: 60 — это значит «попробуйте через 60 секунд». Браузер и клиенты могут автоматически повторить запрос.

Если ваш сервер отдаёт 503 — добавьте Retry-After. Это помогает поисковикам не понижать ваш сайт в выдаче (они понимают что вы временно недоступны, а не навсегда).

Если вы видите 503 на своём сайте, и вы не делали плановых работ:

  1. Подождите 10-15 минут — часто такие штуки рассасываются сами
  2. Спросите у хостера — нет ли DDoS-атаки на ваш IP или перегрузки
  3. Не паникуйте — 503 это «временно», не «навсегда»
  4. Подключите мониторинг чтобы видеть частоту — если 503 повторяется часто, это серьёзный сигнал

503 коварен тем что часто самопроходит за минуты. Без мониторинга вы можете годами не подозревать что ваш сайт падает каждый вечер в пиковые часы.

Monisite:

  • Каждую минуту проверяет ваш сайт из 3 регионов
  • Сразу алертит при 503
  • Показывает закономерности: «503 случается каждый день с 19:00 до 21:00» = пиковая нагрузка
  • Бесплатно

Подключить мониторинг →