Skip links

Ошибка 503, что означает, почему возникает и как исправить

Ошибка 503 (Service Unavailable) указывает на то, что сервер временно недоступен и не может обработать текущий запрос. Это может произойти по разным причинам, включая перегрузку сервера, обслуживание, проблемы с ресурсами или сбои в скриптах или сервисах.

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

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

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

Группа 1. Излишнее количество запросов, отправляемых к серверу

Здесь можно выделить как минимум семь источников ошибки.

1. Хакерские атаки. Подобная техника вывода сайта из строя характерна, например, для DDoS-атак.

Решение: установите на свой сайт CloudFlare или другой защитный экран.

2. Разобщение ресурсов. Необходимые для отображения страницы компоненты загружаются в качестве самостоятельных запросов. Вместо того чтобы загружать медиафайлы (например, изображения или анимации), JavaScript и «стили» одним файлом, все эти компоненты разрознены. И, соответственно, они отправляются по разным запросам.

Решение:удалите лишние неиспользуемые скрипты, внедрите кэширование страниц, уменьшите размер изображений, обязательно продиагностируйте CSS.

3. Внедрение скриптов или URL. Если вы пытаетесь задействовать JavaScript на чужом сайте, будьте готовы, что сервер выдаст 503-й ответ. То же самое касается попыток внедрения информеров или любых URL  на изображения сайта.

Решение:установка антилич-плагина для используемой CMS или же самостоятельное прописывание такого кода в файле htaccess:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш сайт.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.yandex.ru
[NC]RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?images.google.ru [NC]
RewriteCond %{REQUEST_URI}
!^/название_изображения_которое_будет_выводиться_на_других_сайтах.png [NC]
RewriteRule .(gif|jpg|jpeg|png|swf)$ http://
Ваш_сайт.ру/название_изображения_которое_будет_выводиться_на_других_сайтах.png [R,NC]

Вам понадобится кастомизировать этот код под свои нужды. Например, так:

RewriteCond%{HTTP_REFERER}!^$
RewriteCond%{HTTP_REFERER}!^http(s)?://(www.)?http://ваш_сайт.ru[NC]
RewriteCond%{HTTP_REFERER}!^http(s)?://(www.)?images.yandex.ru[NC]
RewriteCond%{HTTP_REFERER}!^http(s)?://(www.)?images.google.com[NC]
RewriteCond%{HTTP_REFERER}!^http(s)?://(www.)?images.google.ru[NC]
RewriteCond%{REQUEST_URI}!^/antipic.jpg[NC]
RewriteRule.(gif|jpg|jpeg|png|swf)$ http:/ваш_сайт.ru/antipic.png[R,NC]

4. Определенный компонент сайта постоянно отправляет запросы на веб-сервер. Это вредно, бесполезно и ухудшает быстродействие сервера + увеличивает скорость загрузки вашего сайта. В качестве такого компонента могут выступать разные элементы: виджет, установленная тема или какой-либо плагин. Допустим, вы захотели внедрить на коммерческую страницу окно с чатом. Если оно создано на базе AJAX — а это весьма распространенный сценарий — готовьтесь к бесконечному количеству запросов и увеличению нагрузки на сервер.

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

5. Нагрузка, создаваемая краулерами поисковых систем или других сервисов. Пауки «Гугла», «Яндекса» и других поисковых систем автоматически обходят все сайты в интернете. Да, вы можете добавить рекомендательные директивы в файл robots.txt, но чаще всего краулеры их не соблюдают. Еще более серьезную нагрузку могут создавать пауки сторонних сервисов, например, краулеры Netpeak, Megaindex, Serpstat.

Рекомендательная директива для краулера Google, запрещающая индексацию сайтаРекомендательная директива для краулера Google, запрещающая индексацию сайта

Решение: в robots.txt укажите конкретных user-agent’ов, которые создают серьезную нагрузку на сайт. Если это не помогло, попробуйте заблокировать конкретные IP-адреса. В случае с краулерами такой подход чаще всего не сработает: у них обычно не статические IP.

6. Плагины вCMS. Если вы вебмастер и проблема возникает на вашем сайте, обращайте внимание на установленные в CMS плагины: часто они конфликтуют друг с другом или, например, с темой сайта.

Решение: Попробуйте отключить те плагины, которые вы устанавливали недавно и понаблюдайте за проблемной страницей. Если она открылась, значит причина была именно в каком-то из плагинов, а точнее — внутренних ошибках, которые создавал такой плагин. Если вы не знаете, какой именно плагин является причиной ошибки, отключите их все. Затем начните включать поэтапно, а затем проверяйте доступность проблемной страницы. Если дело было в плагине, рано или поздно страница откроется без ошибки. После нахождения плагина-виновника удалите его через административную панель вашей CMS или замените другим с аналогичным функционалом.

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

Решение: Диагностировать эту причину можно, задав соответствующий вопрос в саппорт хостинга. Специалист технической поддержки сообщит о перебоях в работе сервера.

Создаем тикет в саппорте хостинга и спрашиваем о перебоях в работе серверовСоздаем тикет в саппорте хостинга и спрашиваем о перебоях в работе серверов

Группа 2. Негативное воздействие одного или нескольких скриптов

В этой группе можно выделить следующие причины появления сбоя.

1. «Тяжелые» запросы, отправляемые к базе данных MySQL.Если число таких запросов велико, ошибка может появляться время от времени. Решение для вебмастера — глобальная оптимизация запросов, отправляемых в SQL.

Решение: индексация таблицы базы данных непосредственно по колонкам из выборки. MySQL хорош тем, что все «тяжелые» запросы автоматически фиксируются в папке logs:

В этом файле содержится список всех неоптимизированных запросовВ этом файле содержится список всех неоптимизированных запросов

Вы без проблем найдете все «медленные» запросы и сможете оптимизировать их в дальнейшем, либо просто заменить.

Помочь также может внедрение кэширования страниц, изменение темы сайта (эта причина обнаруживается чаще, чем другие), отключение неоптимизированных плагинов. Иногда проблем настолько много, что решить их сразу может только переезд на другую систему управления контентом.

Обязательно убедитесь, что проблемная страница может установить соединение с БД MySQL. В противном случае и будет возникать 503 ответ сервера.

2. Слишком «тяжелые» скрипты.Даже 1-2 плохо оптимизированных скрипта могут создавать колоссальную нагрузку на сервер.

Решение: ресурсоемкие сценарии должны быть отключены или заменены на те, которые не создают высокой статической нагрузки. Статистику нагрузки аккаунта можно посмотреть в административной панели хостингаСтатистику нагрузки аккаунта можно посмотреть в административной панели хостинга

3. Передача файлов большого размера непосредственно через PHP.Этот источник сбоя возникает при попытке передать статичные файлы через какие-либо скрипты, например, при помощи средств того же PHP. Это некорректный подход.

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

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

4. Регулярное использование почтовых сервисов.Каждый раз, когда скрипт e-mail-рассылки инициализируется, возрастает нагрузка на сервер.

Решение: изучайте лимиты по суммарному числу емейлов, которые допустимо отправлять через используемый вами хостинг.

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

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

Встроенный планировщик заданий в административной панели хостинга BegetВстроенный планировщик заданий в административной панели хостинга Beget

5. Взаимодействия с программным сервером.Самый частый сценарий — подключение к удаленному серверу. Это сулит дополнительные сложности: совершение ненужных HTTP-запросов, появление тайм-аутов, обрывы связи, излишнее ожидание ответа.

Решение: соединение с таким веб-сервером нужно минимизировать, а лучше вообще избавиться от него.

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

Пример начального тарифного плана на одном из российских хостинговПример начального тарифного плана на одном из российских хостингов

Как еще исправить ошибку 503: дополнительные советы пользователю

1. Напишите в саппорт сайтаи уточните, почему не открывается страница. Обычно email для технических вопросов вынесен отдельно на странице контактов.

Email технической поддержки сайта вынесен отдельноEmail технической поддержки сайта вынесен отдельно

2. Отключите сетевое оборудование(например, Wi-Fi роутер) примерно на 2-3 минуты. Это поможет, если ошибка возникает на уровне IP-адреса. При перезагрузке сетевого оборудования вашему устройству будет присвоен новый IP, а проблемы с открытием страницы будут решены. Этот способ сработает только в том случае, если ваш интернет-провайдер присваивает вам динамический, а не статический адрес.

3. Обновите проблемную страницу с очисткой кэша. Для этого используйте сочетание горячих клавиш Control + F5. Полезно также целиком очистить все временные файлы в используемом браузере.

Очищаем историю, файлы куки и кэш браузераОчищаем историю, файлы куки и кэш браузера

При такой очистке вы автоматически выйдете из всех аккаунтов (на всех сайтах), где прошли авторизацию ранее.

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

6. Перезагрузите систему. В редких случаях причиной ошибки может быть сбой ОС. Он может возникать как на уровне системного, так и стороннего ПО. Перезагрузка системы в вышеуказанных сценариях станет решением.

Выводы

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

5796 006

Leave a comment

Этот веб-сайт использует файлы cookie для улучшения вашего веб-опыта.