ИНСТР-503HTTP 5xx · ServerRetry-After headerревизия 2026-05-07

Ошибка 503

HTTP 503 Service Unavailable — сервис временно недоступен из-за обслуживания или перегрузки. Чем отличается от 502/500.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-503|real-time
calcal.ru / oshibka-503-service-unavailable
Загрузка инструмента…
503
Код ошибки
Service
Unavailable
Retry-After
Header
Намерен.
отказ

Что значит 503 Service Unavailable

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

Сервер сам решает вернуть 503, потому что: идёт обслуживание, превышен rate limit, нет свободных ресурсов, или внешняя зависимость (БД) временно недоступна. Хорошая практика — указывать Retry-After заголовок, сообщающий клиенту когда повторить.

Когда сервер возвращает 503

  • Плановое обслуживание. Деплой большой версии, миграция БД, обновление инфраструктуры. Все запросы → 503 + красивая страница «Мы скоро вернёмся».
  • Rate limiting. Клиент превысил лимит запросов. Например, 100 запросов/минуту — 101-й получит 503 (или 429 — это более точный код).
  • Circuit breaker. Внешний сервис (платёжный шлюз, SMS-провайдер) не отвечает. Чтобы не повесить свой сервис, разрываем circuit и возвращаем 503.
  • Health check failed. Endpoint /health проверяет: БД доступна, кэш работает, очереди живы. Если что-то сломалось — возвращает 503. Балансировщик исключает узел из ротации.
  • Перегрузка. Резкий пик трафика, приложение еле живёт. Лучше отказать новым запросам, чем обработать всех плохо.
  • Защита от DDoS. При атаке возвращаем 503 для подозрительного трафика, пускаем только белый список.
  • Платёжный шлюз недоступен. На странице оплаты возвращаем 503, чтобы пользователи не пытались купить пока эквайринг не работает.
The 503 (Service Unavailable) status code indicates that the server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.RFC 9110 Section 15.6.4

Maintenance mode правильно

Деплой / миграция / обновление — частая причина 503. Как сделать правильно:

Nginx — простой способ

server {
    listen 80;
    server_name example.com;

    # Включить maintenance — раскомментировать
    # return 503;

    location / {
        proxy_pass http://app:3000;
    }

    # Кастомная maintenance страница
    error_page 503 /maintenance.html;
    location = /maintenance.html {
        root /var/www/static;
        internal;
        add_header Retry-After "3600";
    }
}

Nginx — с whitelist для админов

server {
    set $maintenance 1;

    # Whitelist админов
    if ($remote_addr ~ "^(1\.2\.3\.4|5\.6\.7\.8)$") {
        set $maintenance 0;
    }

    if ($maintenance = 1) {
        return 503;
    }

    location / {
        proxy_pass http://app:3000;
    }
}

Health check pattern

// app.js (Node.js / Express)
app.get('/health', async (req, res) => {
  try {
    await db.query('SELECT 1');
    await cache.ping();
    res.status(200).json({ status: 'ok' });
  } catch (e) {
    res.status(503).json({
      status: 'unhealthy',
      error: e.message,
    });
  }
});

Что делать пользователю

  • Подождите. 503 = временно. Большинство сайтов восстанавливают работу за 5-30 минут.
  • Проверьте Retry-After в DevTools. Network → выберите запрос → Response Headers. Узнаете точное время.
  • Status page. Многие сервисы имеют status.example.com где видно реальное состояние.
  • Соцсети сайта. Часто пишут «У нас обслуживание до 14:00» в Twitter / Telegram.
  • Поддержка. Если 503 длится дольше часа — напишите. Возможно проблема о которой не знают.

503 и SEO

  • Кратковременные 503 (минуты-часы). Не влияют на SEO. Поисковики понимают временную недоступность.
  • Retry-After важен. Указывает поисковику когда вернуться. Без него поисковик может посчитать страницу полностью недоступной.
  • Длительные 503 (дни). Страницы могут временно выпасть из индекса. Восстанавливаются после возвращения сайта.
  • НЕ используйте 200 для maintenance-страницы. Поисковик проиндексирует «Мы скоро вернёмся» как реальный контент. Это soft 5xx — Google штрафует.
  • Search Console / Yandex.Webmaster. Регулярно проверяйте раздел «Ошибки сканирования» — много 503 = сигнал проблемы.
ИСТОЧНИКИ
  1. RFC 9110 Section 15.6.4 — 503 Service Unavailable. IETF. datatracker.ietf.org/doc/html/rfc9110#section-15.6.4. 2022.
  2. Best practices for maintenance pages. Google Search Central. developers.google.com/search/docs/crawling-indexing/scheduled-downtime. 2024.
  3. Yandex Webmaster — обработка серверных ошибок. Яндекс. yandex.ru/support/webmaster. 2024.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

503 — HTTP-код, означающий «сервер сейчас не может обработать запрос». В отличие от 500 (bug) или 502 (приложение упало), 503 — это НАМЕРЕННЫЙ ответ сервера: «я работаю, но временно не принимаю запросы». Причины: плановое обслуживание, перегрузка (rate limit), отсутствие свободных ресурсов. Обычно сопровождается заголовком Retry-After с указанием когда повторить.
502 Bad Gateway — прокси получил мусор от приложения (или приложение упало). 503 Service Unavailable — приложение РАБОТАЕТ и осознанно отвечает «не могу прямо сейчас». 502 = «авария», 503 = «контролируемый отказ». Если видите 502 — что-то сломалось. Если 503 — система перегружена или на обслуживании. Разные первопричины, разные решения.
HTTP-заголовок, указывающий когда клиенту повторить запрос. Может содержать: (1) Число секунд: <code>Retry-After: 120</code> — повторить через 2 минуты. (2) Дата: <code>Retry-After: Wed, 21 Oct 2025 07:28:00 GMT</code>. Хорошие клиенты автоматически ждут указанное время и повторяют. Поисковые боты Yandex/Google уважают Retry-After и не считают это полной недоступностью.
Подождите. Если в ответе есть Retry-After — повторите через указанное время. Если нет — попробуйте через 5-10 минут. (1) Обновите страницу (F5). (2) Проверьте статус-страницу сайта (status.example.com). (3) Если массовая проблема — об этом часто пишут в Twitter / Telegram. (4) Если часто получаете 503 — возможно ваш IP попал в rate limit (например, при парсинге сайта). Снизьте частоту запросов.
Правильное применение 503: (1) <strong>Maintenance mode</strong> — на время деплоя/обновления. Все запросы → 503 + Retry-After. (2) <strong>Rate limiting</strong> — клиент превысил лимит → 503 (или 429). (3) <strong>Circuit breaker</strong> — внешний сервис недоступен, защищаем своё приложение → 503. (4) <strong>Health check failed</strong> — БД недоступна → /health возвращает 503, балансировщик исключает узел.
НЕ голую страницу с надписью «503 Service Unavailable» — это пугает. Покажите: (1) Дружелюбный текст «Мы скоро вернёмся» с эмодзи. (2) Причину: «Плановое обслуживание до 14:00» или «Высокая нагрузка, попробуйте через 5 минут». (3) Альтернативные каналы связи (поддержка, статус-страница). (4) Юмор по теме сайта (как у Vercel, Cloudflare). Главное — не оставляйте пользователя в неведении.
Минимально, если сделано правильно. Поисковые боты понимают временную недоступность, особенно при наличии Retry-After. Кратковременные 503 (час-два деплоя) не влияют на индексацию. Длительные (дни) — могут привести к временному выпадению страниц из индекса. Главное правило: НЕ возвращайте 200 для maintenance-страницы — это soft 5xx, поисковик проиндексирует пустую страницу как контент.
(1) Nginx: <code>return 503;</code> в server-блоке для всех URL. (2) Кастомная страница: <code>error_page 503 /maintenance.html;</code>. (3) Заголовок: <code>add_header Retry-After "3600";</code> (1 час). (4) Whitelist для админов: <code>if ($remote_addr != 1.2.3.4) { return 503; }</code> — админы видят сайт, остальные maintenance. (5) Главное: уведомите пользователей заранее за 24-48 часов через email / соцсети.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.