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

Ключевой вывод

503 Service Unavailable означает, что сервер или уровень перед ним (балансировщик нагрузки, CDN или прокси) сейчас не может обработать ваш запрос: он перегружен, на обслуживании, ограничивает частоту запросов или у него нет исправного бэкенда, куда можно его передать. Это состояние задумано как временное. Посетителям остаётся подождать и повторить попытку; владельцам сайтов нужно прочитать точный текст сообщения, чтобы понять, какой уровень ответил (nginx, Apache, IIS, HAProxy, Varnish или Cloudflare), и проверить логи этого уровня.

Проверьте сейчас

Руководство по исправлению HTTP-ошибки 503 service unavailable: экран ошибки сервера и пошаговые решения
Руководство по исправлению HTTP-ошибки 503 service unavailable: экран ошибки сервера и пошаговые решения
Начать чтение
  1. Что такое HTTP-ошибка 503?
  2. Как выглядит ошибка 503
  3. Распространённые причины HTTP-ошибки 503
  4. Решение для посетителей: что вы можете сделать
  5. Способ 1: выясните, какой уровень отправил 503
  6. Способ 2: проверьте ресурсы сервера (CPU, RAM, диск)
  7. Способ 3: проверьте логи ошибок
  8. Способ 4: отключите плагины и темы (WordPress / CMS)
  9. Способ 5: увеличьте лимиты PHP и сервера
  10. Способ 6: проверьте CDN или балансировщик нагрузки
  11. Способ 7: проверьте наличие DDoS или бот-атак
  12. Способ 8: устраните проблемы с подключением к базе данных
  13. Способ 9: свяжитесь с хостинг-провайдером
  14. 503 в сравнении с другими HTTP-ошибками
  15. Как предотвратить ошибки 503
  16. Часто задаваемые вопросы

Что такое HTTP-ошибка 503?

503 Service Unavailable означает, что сервер или что-то перед ним сейчас не может обработать ваш запрос: он перегружен, на обслуживании, ограничивает частоту запросов или у него нет исправного бэкенда, куда можно его передать. RFC 9110 определяет это как временное состояние, которое, скорее всего, пройдёт через какое-то время.

Сервер может добавить заголовок Retry-After с указанием, сколько ждать. В отличие от 500, который означает, что что-то сломалось, 503 говорит «не сейчас», поэтому сайты используют его для плановых работ.

Часто отвечает вовсе не ваш веб-сервер, а уровень перед ним: балансировщик нагрузки вроде HAProxy, кэш вроде Varnish, CDN вроде Cloudflare или Kubernetes Ingress. Точный текст сообщения подскажет, какой именно (см. ниже).

Сайт не работает у всех? Проверьте сейчас

Как выглядит ошибка 503

Сообщение подсказывает, какой уровень ответил. Вот самые частые, с указанием ПО, которое их выводит:

СообщениеКто отправилЧто это обычно значит
503 Service Temporarily Unavailable («nginx» внизу страницы)nginx (включая ingress-nginx в Kubernetes)Лимит частоты запросов или соединений, правило обслуживания или (Ingress) нет готовых подов для сервиса
Service Unavailable · The server is temporarily unable to service your request due to maintenance downtime or capacity problemsApachemod_proxy не смог связаться с бэкендом, либо включена конфигурация обслуживания
HTTP Error 503. The service is unavailable.IIS (HTTP.sys)Пул приложений сайта остановлен или его очередь запросов переполнена (причину указывает журнал HTTPERR)
503 Service Unavailable · No server is available to handle this request.HAProxyНи один бэкенд-сервер не смог принять запрос (все не прошли проверки работоспособности, все были заняты, пока очередь не истекла, или соединения были отклонены)
Error 503 Backend fetch failed (Guru Meditation)VarnishVarnish не смог получить страницу от бэкенда
Страница 503 со словом «cloudflare»CloudflareПроблема на стороне самой Cloudflare или Worker, превысивший свои лимиты
Error 503 (Service Unavailable)!!1Серверы GoogleСервис Google или приложение, размещённое в Google, перегружено
Briefly unavailable for scheduled maintenance. Check back in a minute. (на сайте WordPress на русском языке: «Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту.»)WordPressИдёт обновление (WordPress игнорирует оставшийся файл .maintenance через 10 минут)

Как бы ни был сформулирован текст, смысл один: этот запрос сейчас не может быть обработан, и смотреть нужно на уровень, указанный в таблице.

Распространённые причины HTTP-ошибки 503

Обычные причины, по которым сервер или уровень перед ним возвращает 503:

  • Перегрузка — достигнуты лимиты CPU, памяти или соединений при всплеске трафика, вирусной публикации или агрессивном краулере
  • Плановое обслуживание — сайт намеренно отключён на время обновления или миграции; при правильной настройке с заголовком Retry-After
  • Нет исправного бэкенда — у балансировщика нагрузки, прокси или Ingress нет работающего сервера, куда можно отправить запрос (приложение упало, проверки работоспособности не проходят, нет готовых подов)
  • Лимиты частоты запросов или соединений — limit_req и limit_conn в nginx по умолчанию отвечают 503, поэтому его может вызвать активный клиент или краулер
  • Упавшее или остановленное приложение — PHP-FPM, Node.js или Python не работают за запущенным веб-сервером; в IIS — остановленный пул приложений
  • Лимиты ресурсов хостинга — виртуальный хостинг ограничивает CPU, память и число процессов на аккаунт
  • Плагин, тема или обновление — в WordPress и других CMS неудачное обновление может обрушить приложение или оставить сайт в режиме обслуживания
  • Атака — DDoS или поток ботов исчерпывает те же ресурсы, что и всплеск трафика

Решение для посетителей: что вы можете сделать

Если вы заходите на чужой сайт, проблема на его стороне. Что можно сделать:

  • Подождать и повторить — 503 задуман как временный; подождите минуту и обновите страницу один раз. Если страница показывает время Retry-After или сообщение об обслуживании, подождите столько
  • Проверить, не работает ли сайт у всех — проверка доступности сайта от DNS Robot открывает сайт из-за пределов вашей сети
  • Посмотреть страницу статуса или соцсети сайта — плановые работы и сбои обычно анонсируют
  • Попробовать другую сеть — если сайт открывается через мобильный интернет, то либо VPN или прокси в вашей обычной сети отвечает этим 503, либо сайт ограничивает частоту запросов с вашего IP-адреса

Способ 1: выясните, какой уровень отправил 503

Прежде чем что-либо перезапускать, посмотрите на сообщение и заголовки ответа: они подскажут, какой уровень ответил. Проверьте снаружи с помощью проверки HTTP-заголовков от DNS Robot или curl -sI и обратите внимание на заголовок server и текст страницы (см. таблицу выше).

Затем перезапустите тот уровень, который отказывает, а не только веб-сервер:

bash
# Restart Nginx
sudo systemctl restart nginx

# Restart Apache
sudo systemctl restart apache2      # Debian/Ubuntu
sudo systemctl restart httpd         # CentOS/RHEL

# Restart PHP-FPM
sudo systemctl restart php8.2-fpm    # Adjust version as needed

# Restart Node.js (PM2)
pm2 restart all

# Restart entire server (last resort)
sudo reboot

Если 503 возвращается через несколько минут после перезапуска, причина никуда не делась: переходите к ресурсам и логам.

Способ 2: проверьте ресурсы сервера (CPU, RAM, диск)

Если сервер перегружен, перезапуск даёт лишь временное облегчение. Проверьте, что потребляет ресурсы.

bash
# Check CPU and memory usage
top -bn1 | head -20

# Check disk space
df -h

# Check memory in detail
free -m

# Check active connections
ss -s

# Find processes using the most memory
ps aux --sort=-%mem | head -10

# Find processes using the most CPU
ps aux --sort=-%cpu | head -10

Если CPU или RAM загружены на 90%+, вам нужно оптимизировать приложение, завершить неуправляемые процессы или обновить сервер. Если диск заполнен, очистите лог-файлы, старые бэкапы или временные файлы.

Способ 3: проверьте логи ошибок

Логи точно скажут, почему возник 503. Прочитайте последние строки командами ниже и поищите в них следующее:

bash
# Nginx error log
tail -50 /var/log/nginx/error.log

# Apache error log
tail -50 /var/log/apache2/error.log      # Debian/Ubuntu
tail -50 /var/log/httpd/error_log         # CentOS/RHEL

# PHP-FPM log
tail -50 /var/log/php8.2-fpm.log

# WordPress debug log (if WP_DEBUG_LOG is enabled)
tail -50 /var/www/html/wp-content/debug.log

# System log
tail -50 /var/log/syslog

«limiting requests» или «limiting connections» (nginx) — limit_req или limit_conn отклонил запрос; он отвечает 503, пока вы не зададите limit_req_status или limit_conn_status.

«max_children» (PHP-FPM, например «server reached pm.max_children setting») — заняты все PHP-воркеры: Apache отвечает 503, а nginx — 502 или 504.

«AH01114» / «failed to make connection to backend» (Apache mod_proxy) — Apache не смог связаться с бэкендом и ответил 503.

«Too many connections» (MySQL) — исчерпан лимит соединений с базой данных.

«no live upstreams» и «upstream timed out» в nginx относятся к 502 Bad Gateway и 504 Gateway Timeout, а не к 503.

Способ 4: отключите плагины и темы (WordPress / CMS)

В WordPress и других CMS тяжёлый плагин может исчерпать PHP-воркеры или лимиты ресурсов хостинга, что даёт 503 (плагин, который падает, даёт 500). Если 503 начался после обновления или установки плагина, начните с него.

Если у вас нет доступа к панели администратора WordPress, отключите плагины через файловую систему или базу данных.

bash
# Disable all plugins by renaming the plugins folder
cd /var/www/html/wp-content
mv plugins plugins_disabled

# If the site loads, rename it back and re-enable plugins one by one
mv plugins_disabled plugins

# To disable a single plugin
mv plugins/problem-plugin plugins/problem-plugin.disabled

После выявления проблемного плагина обновите его, замените альтернативой или свяжитесь с разработчиком. Также проверьте совместимость вашей версии PHP — некоторые плагины перестают работать после обновления PHP на сервере.

Застряли на «Briefly unavailable for scheduled maintenance»? WordPress создаёт файл .maintenance в корне сайта на время обновлений и игнорирует его, когда ему больше 10 минут. Удалите его, чтобы вернуться раньше; если сообщение остаётся, поищите файл wp-content/maintenance.php или кэшированную копию страницы.

Способ 5: увеличьте лимиты PHP и сервера

Если на сервере закончились PHP-воркеры или достигнут лимит памяти, необходимо увеличить значения в конфигурации.

ini
; PHP-FPM pool (e.g. /etc/php/8.2/fpm/pool.d/www.conf); the default ships with pm.max_children = 5
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

; php.ini (defaults: memory_limit = 128M, max_execution_time = 30)
memory_limit = 256M
max_execution_time = 300

После этого перезапустите PHP-FPM (sudo systemctl restart php8.2-fpm, с вашей версией), чтобы новые лимиты применились.

Способ 6: проверьте CDN или балансировщик нагрузки

Если вы используете Cloudflare, другую CDN или балансировщик нагрузки, 503 может исходить от них, а не от вашего сервера.

Правило Cloudflare (их руководство по ошибке 503):

  • На странице есть «cloudflare» или «cloudflare-nginx» — её сгенерировала Cloudflare: проверьте, не превысил ли Worker лимиты CPU или памяти, затем обратитесь в поддержку Cloudflare с выводом /cdn-cgi/trace
  • Нет признаков Cloudflare — 503 вернул ваш origin-сервер, а Cloudflare передала его дальше: проверьте логи origin и спросите хостинг, не ограничивает ли он частоту запросов с IP-адресов Cloudflare

Для HAProxy, облачного балансировщика нагрузки или Kubernetes Ingress проверьте бэкенды: 503 там обычно означает, что ни один бэкенд не смог принять запрос (для AWS Application Load Balancer — что в целевой группе нет зарегистрированных целей). Проверка DNS от DNS Robot подтвердит, что ваш домен по-прежнему указывает туда, куда вы ожидаете.

Способ 7: проверьте наличие DDoS или бот-атак

Внезапный всплеск трафика от ботов или DDoS-атака может перегрузить сервер. Проверьте логи доступа на наличие подозрительных паттернов.

bash
# Count requests per IP in the last 1000 lines
tail -1000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20

# Requests per minute (use -f1-4 for per second)
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1-3 | uniq -c | sort -rn | head -10

# Block an abusive IP (-I puts the rule first, before any ACCEPT rules)
sudo iptables -I INPUT -s 1.2.3.4 -j DROP

# Or in nginx's server block:
# deny 1.2.3.4;

Если один адрес или небольшой диапазон шлёт тысячи запросов, заблокируйте его на файрволе. За Cloudflare или другой CDN сначала сделайте так, чтобы в логах был виден настоящий IP посетителя (set_real_ip_from плюс real_ip_header CF-Connecting-IP в nginx), иначе вы заблокируете CDN вместо атакующего. При крупной атаке режим «I'm Under Attack» в Cloudflare или DDoS-защита вашего хостинга отфильтруют трафик, прежде чем он до вас дойдёт.

Способ 8: устраните проблемы с подключением к базе данных

Когда у базы данных заканчиваются соединения или она останавливается, приложение перед ней может отказать. Одни приложения отвечают 503; WordPress вместо этого показывает «Error establishing a database connection». Проверьте базу данных напрямую:

bash
# Check if MySQL/MariaDB is running (the unit is mysqld on RHEL, mariadb for MariaDB)
sudo systemctl status mysql

# Restart MySQL
sudo systemctl restart mysql

# Check current connections vs limit
mysql -e "SHOW STATUS LIKE 'Threads_connected';"
mysql -e "SHOW VARIABLES LIKE 'max_connections';"

# Increase max connections (temporary)
mysql -e "SET GLOBAL max_connections = 200;"

# Check for long-running queries
mysql -e "SHOW PROCESSLIST;" | head -20

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

Способ 9: свяжитесь с хостинг-провайдером

Если вы используете виртуальный хостинг, управляемый WordPress-хостинг или платформу вроде Squarespace, Wix или Shopify, у вас может не быть доступа к серверным логам или возможности перезапускать сервисы. В таких случаях ошибка 503 может быть вызвана инфраструктурой хостинг-провайдера.

Обратитесь в службу поддержки хостинг-провайдера и предоставьте:

  • Точный URL, возвращающий 503
  • Когда появилась ошибка — укажите дату и время
  • Что изменилось — устанавливали ли вы плагин, обновляли тему или меняли настройки DNS?
  • Ошибка периодическая или постоянная — периодические 503 указывают на нехватку ресурсов; постоянные 503 — на сбой или неправильную конфигурацию

503 в сравнении с другими HTTP-ошибками

Ошибку 503 часто путают с другими серверными ошибками. Вот чем они отличаются.

Код ошибкиНазваниеЗначениеВременная?
500Internal Server ErrorСервер столкнулся с непредвиденной ошибкой (баг, сбой, неправильная конфигурация)Возможно
502Bad GatewayПрокси или балансировщик нагрузки получил недопустимый ответ от вышестоящего сервераВозможно
503Service UnavailableСервер или уровень перед ним сейчас не может принимать запросы (перегрузка, обслуживание, лимиты, нет исправного бэкенда)Да
504Gateway TimeoutПрокси или балансировщик нагрузки не дождался ответа от вышестоящего сервераВозможно
520-530Ошибки CloudflareОшибки Cloudflare при проблемах с соединением с origin-серверомПо-разному

Главное различие: 503 задуман как временный, а заголовок Retry-After может указать, на какой срок. При сканировании Google относится к ошибкам 5xx и 429 одинаково: его краулеры замедляются, а проиндексированные URL некоторое время сохраняются, но со временем исключаются, если ошибки продолжаются (Google Search Central).

Об ошибках на стороне прокси читайте в 502 Bad Gateway и 504 Gateway Timeout; об ограничениях частоты — в 429 Too Many Requests.

Как предотвратить ошибки 503

Профилактика лучше, чем тушение пожаров. Вот лучшие практики для предотвращения ошибок 503.

  • Мониторьте ресурсы сервера — Настройте оповещения при CPU > 80%, RAM > 85% и диск > 90%. Инструменты вроде UptimeRobot, Pingdom или Grafana обеспечивают мгновенные уведомления.
  • Используйте CDN — Cloudflare, Fastly или AWS CloudFront кэшируют статические ресурсы и поглощают всплески трафика, снижая нагрузку на origin-сервер.
  • Включите кэширование — Используйте Redis, Memcached или Varnish для кэширования запросов к базе данных и отрендеренных страниц. Пользователям WordPress: установите плагин кэширования, например WP Super Cache или W3 Total Cache.
  • Автоматическое масштабирование — Если вы используете облачный хостинг (AWS, GCP, Azure, DigitalOcean), настройте автомасштабирование для добавления серверов при всплесках трафика.
  • Ограничивайте ботов — Настройте Nginx или Cloudflare для rate-limiting агрессивных краулеров и парсеров, прежде чем они перегрузят сервер.
  • Оптимизируйте запросы к базе данных — медленные запросы надолго занимают соединения и воркеры. Добавляйте индексы, оптимизируйте join-запросы и кэшируйте результаты в Redis или Memcached.
  • Используйте правильную страницу обслуживания — При деплое возвращайте 503 с заголовком Retry-After вместо того, чтобы позволять серверу упасть. Это сохраняет SEO и информирует пользователей.
  • Обновляйте ПО — Обновляйте CMS, плагины, PHP и базу данных до последних стабильных версий, чтобы избежать известных багов и проблем безопасности.

Сайт не работает у всех?

Проверьте любой сайт из-за пределов вашей сети бесплатной проверкой доступности сайта от DNS Robot: код статуса, время ответа и не работает ли сайт у всех или только у вас.

Источники

  1. RFC 9110 §15.6.4: 503 Service Unavailable, IETF
  2. Error 503, Cloudflare
  3. How HTTP status codes affect Google's crawlers, Google Search Central
  4. ngx_http_limit_req_module (limit_req_status), nginx

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

Что означает 503 Service Unavailable?

Сервер или балансировщик нагрузки, CDN или прокси перед ним сейчас не может обработать ваш запрос: он перегружен, на обслуживании, ограничивает частоту запросов или у него нет исправного бэкенда. RFC 9110 определяет это как временное состояние.

Ошибка 503 временная?

Задумана как временная: 503 говорит «не сейчас», а сервер может прислать заголовок Retry-After с временем ожидания. На практике она длится столько же, сколько её причина: секунды при всплеске трафика, от минут до часов при обслуживании или пока кто-то не перезапустит упавшее приложение.

Как исправить ошибку 503 как посетитель?

Подождите минуту и обновите страницу один раз; бесконечное обновление не поможет. Проверьте проверкой доступности сайта, не работает ли он у всех, загляните на страницу статуса и попробуйте мобильный интернет: если там сайт открывается, отвечает VPN или прокси в вашей обычной сети, либо сайт ограничивает частоту запросов с вашего IP-адреса.

В чём причина 503 Service Unavailable?

Обычно в одной из этих: перегрузка, плановое обслуживание, лимит частоты запросов или соединений, упавшее бэкенд-приложение или балансировщик нагрузки без исправных серверов. Текст сообщения (nginx, Apache, IIS, HAProxy, Varnish, Cloudflare) подскажет, какой уровень проверять.

Что вызывает 503 Service Temporarily Unavailable в nginx?

nginx сам отвечает 503 при своих лимитах частоты запросов и соединений (limit_req и limit_conn по умолчанию дают 503) и по правилам обслуживания. В Kubernetes ingress-nginx отвечает так, когда у сервиса нет готовых подов. Упавший бэкенд даёт 502, а медленный — 504, а не 503.

Что означает «HTTP Error 503. The service is unavailable.»?

Это IIS: пул приложений сайта остановлен (часто потому, что он несколько раз подряд упал и его отключила защита от быстрого сбоя) или его очередь запросов переполнена. Причину указывает журнал HTTPERR; запустите пул в диспетчере служб IIS и проверьте журнал событий Windows на предмет сбоя.

Что означает «No server is available to handle this request»?

Это стандартная страница 503 в HAProxy: ни один бэкенд-сервер за балансировщиком нагрузки не смог принять запрос, потому что все не прошли проверки работоспособности, все были заняты, пока очередь не истекла, или отклонили соединение. Бэкенды должен чинить владелец сайта; посетителю остаётся подождать и повторить попытку.

Вредит ли ошибка 503 SEO?

Нет, если она кратковременная. Краулеры Google замедляются при ошибках 5xx и некоторое время сохраняют проиндексированные URL, но исключают их, если ошибки продолжаются. Для планового обслуживания используйте 503 с заголовком Retry-After, но никогда 404 или страницы ошибок с кодом 200.

В чём разница между ошибками 502 и 503?

502 Bad Gateway означает, что прокси получил от бэкенда недопустимый ответ или не получил никакого. 503 означает, что сервер или прокси сейчас не может принимать запросы. Балансировщики нагрузки часто отправляют 503, когда нет исправного бэкенда, поэтому у двух ошибок может быть общая причина.

Как исправить 503 на WordPress?

Если вы видите «Briefly unavailable for scheduled maintenance», удалите файл .maintenance в корне сайта. Иначе отключите плагины, переименовав wp-content/plugins по SFTP; если сайт вернулся, включайте их по одному и проверьте лимиты ресурсов вашего хостинга.

Об авторе

Shaik Vahid

Основатель DNS Robot. Вахид много лет работал в поддержке веб-хостинга: исправлял клиентам домены, DNS-записи, SSL-сертификаты и доставку почты. Он создаёт инструменты DNS Robot и пишет эти руководства по ошибкам, с которыми люди сталкиваются на самом деле.

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

Сайт не работает у всех или только у вас? Проверьте доступность сайта из 11 точек и с вашего подключения, со скриншотом в реальном времени