Код
#статьи

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

Рассказываем о сбое, который часто возникает из-за высокой нагрузки на сервер и может принести огромные убытки.

Иллюстрация: Оля Ежак для Skillbox Media

Все «пятисотые» HTTP-коды ответа говорят о том, что на сервере неполадки. Например, ошибка 503, о которой пойдёт речь в статье, возникает, когда сайт не может обработать запрос пользователя в данный момент. Разберёмся, почему так происходит и как с этим справиться.

Всё, что нужно знать об ошибке 503:


Что означает ошибка 503 (Service Temporarily Unavailable)

Service Temporarily Unavailable (переводится как «сервис временно недоступен»), или «ошибка 503», — это ошибка, которая говорит нам о том, что сайт перегружен или на нём что-то сломалось.

На экране это может выглядеть так:

503 Service Temporarily Unavailable

The server is temporarily unable to service your request due to 
maintenance downtime or capacity problems. Please try again later.

Additionally, a 503 Service Temporarily Unavailable error was encountered
while trying to use an ErrorDocument to handle the request.

Apache Server at www.example.com Port 80

Или так:

То же самое, вид сбоку
Скриншот: Skillbox Media

Ключевое слово здесь — «временно»: через несколько минут нагрузка на сайт, скорее всего, снизится, и позже всё заработает в обычном режиме. В общем, «повторите попытку чуть позже». Этим код ответа 503, кардинально отличается, скажем, от ошибки 500, которая ничего хорошего в ближайшем будущем не обещает.

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

Поэтому давайте выясним, как избежать возникновения 503-й ошибки, а также как быстро всё исправить, если она всё-таки произошла.

Почему возникает ошибка 503

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

Пользователь вводит в адресную строку название сайта, а затем нажимает Enter. Сразу после этого браузер отправляет запрос на сервер, чтобы получить запрашиваемую страницу. Тот должен ответить — то есть вернуть HTML-страницу. На этом процесс завершён: пользователь зашёл на сайт, сервер выполнил свою работу корректно.

Так происходит обычное общение пользователя с сервером
Иллюстрация: Skillbox Media

Но это в идеале, пока с сервером всё хорошо. Если же с ним начнутся проблемы — в ответ он тоже начнёт сбоить в коммуникациях и выдавать тот самый HTTP-код 503. Перечислим самые распространённые случаи, когда что-то идёт не так:

  • Ограничения самого сервера. Если он способен обработать 100 запросов в секунду, а ему приходит 300, в ответ он начинает вести себя как классическая продавщица из сельпо. То есть в духе: «Не кричите, граждане, встаньте в очередь, вас тут много, а я одна».
  • Аварийные случаи. Например, полетел жёсткий диск или произошёл сбой в работе ПО. Это неизбежно скажется на производительности, а может вовсе привести к полному отказу. Если дальше проводить аналогию с живыми людьми, назовём эту ситуацию «Сервер на больничном».
  • Техническое обслуживание. Ничто не может вечно работать в режиме 24/7. Время от времени сисадмины должны проводить диагностику оборудования, чистить память, обновлять ПО и так далее. Пока они этим занимаются — считайте, что сервер в отпуске.

Бывает, что проблема возникает не по вине самого сайта. Например:

  • Проблемы с интернет-соединением. Они могут возникнуть как со стороны сервера, так и со стороны клиента. Допустим, он отправил запрос, сервер его честно обработал, отправил обратно, а на том конце провода его не приняли, потому что соединение оборвалось. Результат — код ответа 503, хотя сайт здесь ни при чём.
  • Неправильные настройки сети. Wi-Fi-роутер может блокировать некоторые сайты, а значит, пользователь не сможет получить ответ от этих сайтов.

Конечно, последние две ситуации происходят гораздо реже, поэтому проблема, скорее всего, — в сервере. Но на всякий случай всё же не помешает проверить соединение и настройки Wi-Fi.

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

Хотя сам код, начинающийся с пятёрки, указывает на то, что проблема, как было сказано выше, на 90% со стороны сервера, попытаться её устранить могут обе стороны. Для этого есть разные лайфхаки.

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

На самом деле — не так уж много, но тем не менее:

  • Обновите вкладку браузера. Иногда простые действия приводят к положительным результатам. Нажмите кнопку F5, сочетание клавиш Ctrl + R (Command + R для macOS) или специальную кнопку в меню браузера. Вероятность, что проблема решится, — низкая, но не нулевая.
  • Перезапустите браузер. Так вы сбросите текущую сессию соединения и создадите новую. Если дело было в этом, ошибка пропадёт.
  • Очистите кэш, удалите файлы cookies. В них может сохраняться много лишней информации при обмене веб-данными. Поэтому просто удалите их. Это никак не навредит вашему компьютеру.
  • Убедитесь, что дело не в вашем компьютере. Попробуйте открыть страницу с другого устройства и, желательно, при помощи другого интернет-соединения. Если проблема сохраняется — значит, это действительно проблема с той стороны.
  • Перезагрузите компьютер. Причина ошибки может скрываться в сбоях на уровне ОС или другого ПО. Ещё одно простое решение, которое может помочь, но не всегда.
  • Перезагрузите Wi-Fi-роутер. Проблема может быть именно в нём, поэтому попробуйте перезагрузить его через приложение или нажав на кнопку питания.

Если ничто из перечисленного не помогает, остаётся только одно — ждать.

Что делать администратору

Давайте огласим весь список проблем, пусть он и сильно пересекается с тем, что описано выше:

  • Работа сервера. Убедитесь, что он запущен и функционирует правильно. Проверьте логи на наличие ошибок или проблем. Часто причину можно обнаружить там.
  • Нагрузка на сервер. Возможно, он перегружен и не может обрабатывать все запросы. Чтобы исправить это, увеличьте ресурсы сервера (например, добавьте больше оперативной памяти или процессорной мощности), если это возможно.
  • Настройки сервера. Убедитесь, что всё настроено правильно и нет ограничений на количество одновременных подключений.
  • Настройки балансировщика нагрузки. Если вы используете балансировщик нагрузки для распределения трафика на несколько серверов, убедитесь, что его настройки оптимальны.
  • Настройки DNS. Убедитесь, что DNS-записи настроены правильно, а DNS-серверы работают корректно. Проблемы с DNS могут привести к тому, что сервер не сможет получить правильный IP-адрес и обработать запрос.
  • Наличие обновлений. Проверьте, есть ли доступные обновления для вашего ПО, и установите их.

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

Как избежать ошибки 503 в будущем

Главный совет, как избежать не только этой, но большинства других ошибок, — проводите анализ с помощью логов. Там есть всё, что нужно: причины ошибок, нагрузка и многое другое.

А теперь — прочие лайфхаки:

  • Увеличьте ресурсы. Если сайт часто бывает перегружен, стоит задуматься над тем, чтобы повысить его производительность, — например, увеличить объём памяти или добавить процессорной мощности. Это затратно, но эффективно.
  • Используйте кэширование. Оно снижает нагрузку, ускоряет загрузку страниц и уменьшает количество запросов к нему.
  • Оптимизируйте код. Медленный код — большая нагрузка. Поэтому есть повод привести его в порядок.
  • Применяйте балансировщики нагрузки. Они помогут более рационально распределить запросы между несколькими серверами. Это уменьшит нагрузку на отдельные узлы и обеспечит их более высокую доступность.
  • Установите системы мониторинга. Снова отсылка к логам. Мониторинг позволяет быстро обнаруживать проблемы и решать их до того, как всё начнёт гореть.

Итоги

Итак, краткая памятка по HTTP-коду 503 (ошибке Service Temporarily Unavailable):

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

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована