Код ответа сервера протокола передачи гипертекста (HTTP) 503 Service Unavailable указывает на то, что сервер не готов обработать запрос.
Распространенными причинами являются сервер, который отключен для обслуживания или перегружен. Этот ответ следует использовать для временных условий, а Retry-After заголовок HTTP должен, по возможности, содержать предполагаемое время восстановления службы.
Этот конкретный код ответа отличается от 500 Internal Server Error, который мы исследовали некоторое время назад. В то время как внутренняя ошибка сервера 500 указывает на проблему, не позволяющую серверу полностью обработать запрос, ошибка 503 Service Unavailable указывает на то, что сервер все еще работает должным образом и может обработать запрос, но решил вернуть код ответа 503.
Существуют десятки возможных кодов состояния HTTP, используемых для представления сложных отношений между клиентом, веб-приложением, веб-сервером и несколькими сторонними веб-службами. Как вы можете себе представить, определение причины определенного кода состояния может быть сложной задачей. Вот почему в этой статье мы подробно рассмотрим ошибку 503 Service Unavailable. К концу этой статьи вы узнаете, что такое ошибка 503 Service Unavailable и как ее устранять.
Проблема на стороне сервера
Все коды состояния ответа HTTP, которые находятся в категории 5xx, имеют значение server error responses. В отличие от ответа 502 Bad Gateway Error, который указывает, что сервер где-то в цепочке подключений не работает или недоступен, ошибка 503 Service Unavailable указывает на то, что сервер временно не может обработать запрос, но в остальном работает в обычном режиме. Кроме того, в отличие от кодов ответов, связанных со шлюзом, которые указывают на проблемы либо на веб-сервере, либо на другом вышестоящем сервере, код ошибки 503 указывает на проблему на реальном веб-сервере, на котором размещено ваше приложение.
В большинстве случаев веб-сервер должен предоставить удобную для пользователя страницу, показывающую, что служба временно недоступна. Кроме того, приложение должно отправлять Response-After заголовок HTTP. Этот заголовок должен информировать пользовательский агент (клиент), как долго он должен ждать, чтобы повторить попытку запроса. Это значение должно быть либо Date значением, указывающим отметку времени, когда служба будет доступна, либо числовым значением, указывающим, сколько секунд с этого момента пользовательский агент должен ждать, чтобы повторить попытку.
Поскольку ошибка 503 означает, что что-то не так с сервером вашего приложения, вы можете не обращать внимания на другие вещи. Это означает, что вы можете игнорировать большую часть клиентского кода и компонентов, таких как HTML, каскадные таблицы стилей (CSS), клиентский JavaScript и т. д.
Это относится не только к веб-сайтам. Обычные веб-приложения часто используются в приложениях для смартфонов с современным пользовательским интерфейсом. Если в приложении для смартфона возникает ошибка 503 Service Unavailable, проблема не связана с установленным приложением. Проблема будет заключаться в чем-то на стороне сервера, который выполняет большую часть логики и обработки для приложения.
Начните с тщательного резервного копирования приложения
Прежде чем приступать к каким-либо исправлениям или изменениям в системе, сделайте полную резервную копию своего приложения, базы данных и т. д. В противном случае вы можете столкнуться с дополнительными ошибками и скрытыми ошибками.
Если у вас есть возможность, создайте полную копию приложения на вторичном staging сервере, который не является «рабочим». Это даст вам чистую испытательную площадку для тестирования всех возможных исправлений для решения проблемы, не угрожая безопасности или неприкосновенности вашего работающего приложения.
Диагностика ошибки 503 «Сервис недоступен»
Как упоминалось ранее, ошибка 503 указывает на то, что сервер (обычно фактический веб-сервер, на котором работает ваше приложение) временно недоступен. Обычно это происходит из-за того, что сервер «не работает» из-за планового обслуживания или из-за большой нагрузки трафика, которая не позволяет ему должным образом обслуживать все входящие запросы.
Сервер отключен на техническое обслуживание
Ошибка 503 должна появиться, если сервер отключен для обслуживания. На самом деле сервер не вышел из строя (не выключился), а находится в режиме обслуживания, который не позволяет запросам вести себя как обычно. Вот почему когда-то нормально функционирующая страница будет отображать ошибку 503 Service Unavailable, а также сообщение о том, что сервер отключен для обслуживания. Только администраторы будут иметь доступ к серверу, в то время как обычные публичные запросы будут отклонены до тех пор, пока не будет завершено техническое обслуживание.
Сервер перегружен
Сервер будет отклонять запросы из-за перегрузки из-за неожиданного наплыва трафика и входящих запросов. По сути, сервер саморегулируется, чтобы поддерживать некоторое подобие нормального поведения для части запросов. Если приложение/сервер настроено правильно, вы сможете выполнить запрос, подождав и повторив попытку несколько раз. Подождав уменьшения всплеска трафика, сервер выполнит ответ вам.
Если ошибка не является результатом обслуживания или перегрузки, вам потребуется продолжить устранение неполадок.
Мы рассмотрим некоторые советы и рекомендации по устранению неполадок, которые помогут вам решить эту проблему. Если здесь ничего не работает, не забывайте, что Google — ваш друг. Найдите конкретные термины, связанные с вашими проблемами. Скорее всего, вы найдете других, кто столкнулся с этой проблемой и нашел способы ее решения.
Устранение неполадок на стороне сервера
В большинстве случаев ошибка 503 Service Unavailable возникает в результате технического обслуживания или перегрузки трафика. Если это не так, вот несколько дополнительных советов, которые помогут вам устранить причину этой ошибки.
Перезагрузите сервер
В цепочке серверов вашего приложения может быть узкое место, вызывающее ошибку 503. Одно из самых простых решений — перезапустить веб-сервер, на котором размещено приложение. Если ваше приложение распределено по нескольким серверам, убедитесь, что все они правильно перезагружены, чтобы вернуть систему в нормальное состояние.
Проверка на неожиданное техническое обслуживание
Ваш сервер и/или приложение могут быть автоматически настроены на техническое обслуживание. Многие современные системы управления контентом, такие как WordPress, автоматически загружают и устанавливают обновления своего базового программного обеспечения без какого-либо вмешательства с вашей стороны. В течение этого периода веб-сервер может выдавать ошибку 503 Service Unavailable.
Если у вас есть доступ к параметрам администрирования вашего приложения/сервера, проверьте параметры конфигурации для автоматического планирования обслуживания. У вас может быть возможность отключить этот параметр, если вы предпочитаете иметь прямой контроль над этим процессом. Не забывайте регулярно обновляться до более новых версий, так как они обычно содержат критические исправления безопасности.
Проблемы с подключением к серверу
Ошибка 503 может указывать на то, что сервер где-то в цепочке не работает или недоступен. Большинство современных приложений не размещаются на одном сервере. Вместо этого приложения распределены по нескольким системам или зависят от сторонних сервисов. Если один из этих серверов выйдет из строя, вы можете увидеть ошибку 503, которая, по-видимому, связана с вашим собственным приложением.
Неправильная конфигурация брандмауэра
Брандмауэр — это базовое устройство безопасности, которое отслеживает сетевой трафик и действует как привратник. Это помогает решить, какой трафик безопасен, а какой может быть вредоносным. В большинстве случаев брандмауэры блокируют потенциально опасный трафик (и могут регистрироваться для использования сетевым администратором). Но возможно, что брандмауэр, настроенный где-то в сети, препятствует прохождению критического трафика.
Это особенно верно для приложений, использующих сети доставки контента (CDNs). Эти CDN действуют как сторонний хост для «тяжелого» контента, такого как изображения или видео, от имени вашего приложения, поэтому ваше приложение может поддерживать свою скорость и эффективность. Однако службы автоматических брандмауэров иногда дают ложные срабатывания, принимая совершенно безопасный и действительный контент из CDN за вредоносный. Когда это произойдет, брандмауэр отключит этот поток контента, что приведет к ошибке 503.
Проверьте журналы
Почти каждое веб-приложение будет вести журналы на стороне сервера в той или иной форме, например журналы приложений и журналы сервера.
- Application logs: эти журналы содержат историю действий приложения. Обычно это включает запрошенные страницы, подключенные серверы, результаты базы данных и так далее.
- Server logs: эти журналы относятся к фактическому оборудованию, на котором запущено приложение, и часто содержат сведения о работоспособности и состоянии всех подключенных служб или только самого сервера. Используйте в поиске Google такие запросы, как: «журналы [PLATFORM_NAME]», если вы используете CMS, или «журналы [PROGRAMMING_LANGUAGE]» и «журналы [OPERATING_SYSTEM]», если вы используете пользовательское приложение, чтобы получить больше информации о поиске журналов, о которых идет речь.
Код приложения или ошибки скрипта
Если ничего не помогает, проверьте свой код. Ошибка может быть причиной ошибки 503 Service Unavailable. Попробуйте диагностировать проблему, вручную отладив приложение и проанализировав журналы приложения и сервера. В идеале сделайте копию всего приложения на локальном компьютере для разработки и выполните пошаговый процесс отладки. Это позволит вам воссоздать точный сценарий, в котором произошла ошибка 503 Service Unavailable. Как только вы узнаете, почему произошла ошибка, вы можете приступить к ее исправлению.
Важно отметить, что не только вредоносное ПО и вирусы влияют на работу сайта, а и многие другие факторы. Но, какова бы ни была причина, по которой страница сайта не открывается, например проблемы с базой данных или сервером, DDoS-атаки или вирусы, важно контролировать доступность сайта для посетителя. Ситуация, при которой пользователь не может открыть страницу вашего сайта, отрицательно влияет на поднятие сайта в поиске (поисковой выдаче) и оставляет негативное впечатление о вашем сайте у посетителя. Вы теряете потенциальных клиентов, а значит и деньги. Используйте хороший сервис, например BAILRY для постоянного контроля (проверки) доступности сайта. Сервис предоставляет как бесплатную регулярную (периодическую) проверку доступности сайта, так и платную услугу - для постоянного контроля доступности сайта.
Компания Mainton - разработка и тестирование программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.