Ошибка 503: что означает и как её исправить
Рассказываем о сбое, который часто возникает из-за высокой нагрузки на сервер и может принести огромные убытки.
Иллюстрация: Оля Ежак для Skillbox Media
Все «пятисотые» HTTP-коды ответа говорят о том, что на сервере неполадки. Например, ошибка 503, о которой пойдёт речь в статье, возникает, когда сайт не может обработать запрос пользователя в данный момент. Разберёмся, почему так происходит и как с этим справиться.
Всё, что нужно знать об ошибке 503:
Что означает ошибка 503 (Service Temporarily Unavailable)
Service Temporarily Unavailable (переводится как «сервис временно недоступен»), или «ошибка 503», — это ошибка, которая говорит нам о том, что сайт перегружен или на нём что-то сломалось.
На экране это может выглядеть так:
Или так:
Ключевое слово здесь — «временно»: через несколько минут нагрузка на сайт, скорее всего, снизится, и позже всё заработает в обычном режиме. В общем, «повторите попытку чуть позже». Этим код ответа 503, кардинально отличается, скажем, от ошибки 500, которая ничего хорошего в ближайшем будущем не обещает.
Однако не стоит относиться к 503-й ошибке как к какой-то мелочи. Например, за полчаса, пока «сервис временно недоступен», ваш интернет-магазин не продаст ничего — а вы недополучите прибыли, причём это могут быть миллионы рублей. Не говоря о том, что часть покупателей, которым вместо желанного товара предложили зайти позже, могут обидеться и уйти к конкурентам.
Поэтому давайте выясним, как избежать возникновения 503-й ошибки, а также как быстро всё исправить, если она всё-таки произошла.
Почему возникает ошибка 503
Прежде всего разберёмся, как выглядит нормальное общение сервера с пользователем.
Пользователь вводит в адресную строку название сайта, а затем нажимает Enter. Сразу после этого браузер отправляет запрос на сервер, чтобы получить запрашиваемую страницу. Тот должен ответить — то есть вернуть HTML-страницу. На этом процесс завершён: пользователь зашёл на сайт, сервер выполнил свою работу корректно.
Но это в идеале, пока с сервером всё хорошо. Если же с ним начнутся проблемы — в ответ он тоже начнёт сбоить в коммуникациях и выдавать тот самый 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):
- Она возникает, когда сайт не может обработать запрос пользователя.
- Она встречается на любом сайте — даже на том, где всё, казалось бы, хорошо.
- Причины могут быть разными — например, перегрузка, устаревшее ПО или сбой в работе.
- Если ошибка возникла, стоит проверить логи, а затем попробовать перезапустить сервер.
- Чтобы избежать ошибки, нужно оптимизировать работу сайта, использовать балансировщики нагрузки, встроить системы мониторинга.