#статьи
- 10 мар 2023
-
0
Рассказываем о сбое, который часто возникает из-за высокой нагрузки на сервер и может принести огромные убытки.
Иллюстрация: Оля Ежак для Skillbox Media
Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
Все «пятисотые» HTTP-коды ответа говорят о том, что на сервере неполадки. Например, ошибка 503, о которой пойдёт речь в статье, возникает, когда сайт не может обработать запрос пользователя в данный момент. Разберёмся, почему так происходит и как с этим справиться.
Всё, что нужно знать об ошибке 503:
- Что это такое
- Почему возникает ошибка
- Как её исправить
- Как избежать появления проблем
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-й ошибки, а также как быстро всё исправить, если она всё-таки произошла.
Прежде всего разберёмся, как выглядит нормальное общение сервера с пользователем.
Пользователь вводит в адресную строку название сайта, а затем нажимает Enter. Сразу после этого браузер отправляет запрос на сервер, чтобы получить запрашиваемую страницу. Тот должен ответить — то есть вернуть HTML-страницу. На этом процесс завершён: пользователь зашёл на сайт, сервер выполнил свою работу корректно.
Иллюстрация: Skillbox Media
Но это в идеале, пока с сервером всё хорошо. Если же с ним начнутся проблемы — в ответ он тоже начнёт сбоить в коммуникациях и выдавать тот самый HTTP-код 503. Перечислим самые распространённые случаи, когда что-то идёт не так:
- Ограничения самого сервера. Если он способен обработать 100 запросов в секунду, а ему приходит 300, в ответ он начинает вести себя как классическая продавщица из сельпо. То есть в духе: «Не кричите, граждане, встаньте в очередь, вас тут много, а я одна».
- Аварийные случаи. Например, полетел жёсткий диск или произошёл сбой в работе ПО. Это неизбежно скажется на производительности, а может вовсе привести к полному отказу. Если дальше проводить аналогию с живыми людьми, назовём эту ситуацию «Сервер на больничном».
- Техническое обслуживание. Ничто не может вечно работать в режиме 24/7. Время от времени сисадмины должны проводить диагностику оборудования, чистить память, обновлять ПО и так далее. Пока они этим занимаются — считайте, что сервер в отпуске.
Бывает, что проблема возникает не по вине самого сайта. Например:
- Проблемы с интернет-соединением. Они могут возникнуть как со стороны сервера, так и со стороны клиента. Допустим, он отправил запрос, сервер его честно обработал, отправил обратно, а на том конце провода его не приняли, потому что соединение оборвалось. Результат — код ответа 503, хотя сайт здесь ни при чём.
- Неправильные настройки сети. Wi-Fi-роутер может блокировать некоторые сайты, а значит, пользователь не сможет получить ответ от этих сайтов.
Конечно, последние две ситуации происходят гораздо реже, поэтому проблема, скорее всего, — в сервере. Но на всякий случай всё же не помешает проверить соединение и настройки Wi-Fi.
Хотя сам код, начинающийся с пятёрки, указывает на то, что проблема, как было сказано выше, на 90% со стороны сервера, попытаться её устранить могут обе стороны. Для этого есть разные лайфхаки.
На самом деле — не так уж много, но тем не менее:
- Обновите вкладку браузера. Иногда простые действия приводят к положительным результатам. Нажмите кнопку F5, сочетание клавиш Ctrl + R (Command + R для MacOS) или специальную кнопку в меню браузера. Вероятность, что проблема решится, — низкая, но не нулевая.
- Перезапустите браузер. Так вы сбросите текущую сессию соединения и создадите новую. Если дело было в этом, ошибка пропадёт.
- Очистите кэш, удалите файлы cookies. В них может сохраняться много лишней информации при обмене веб-данными. Поэтому просто удалите их. Это никак не навредит вашему компьютеру.
- Убедитесь, что дело не в вашем компьютере. Попробуйте открыть страницу с другого устройства и, желательно, при помощи другого интернет-соединения. Если проблема сохраняется — значит, это действительно проблема с той стороны.
- Перезагрузите компьютер. Причина ошибки может скрываться в сбоях на уровне ОС или другого ПО. Ещё одно простое решение, которое может помочь, но не всегда.
- Перезагрузите Wi-Fi-роутер. Проблема может быть именно в нём, поэтому попробуйте перезагрузить его через приложение или нажав на кнопку питания.
Если ничто из перечисленного не помогает, остаётся только одно — ждать.
Давайте огласим весь список проблем, пусть он и сильно пересекаестя с тем, что описано выше:
- Работа сервера. Убедитесь, что он запущен и функционирует правильно. Проверьте логи на наличие ошибок или проблем. Часто причину можно обнаружить там.
- Нагрузка на сервер. Возможно, он перегружен и не может обрабатывать все запросы. Чтобы исправить это, увеличьте ресурсы сервера (например, добавьте больше оперативной памяти или процессорной мощности), если это возможно.
- Настройки сервера. Убедитесь, что всё настроено правильно и нет ограничений на количество одновременных подключений.
- Настройки балансировщика нагрузки. Если вы используете балансировщик нагрузки для распределения трафика на несколько серверов, убедитесь, что его настройки оптимальны.
- Настройки DNS. Убедитесь, что DNS-записи настроены правильно, а DNS-серверы работают корректно. Проблемы с DNS могут привести к тому, что сервер не сможет получить правильный IP-адрес и обработать запрос.
- Наличие обновлений. Проверьте, есть ли доступные обновления для вашего ПО, и установите их.
Если исправить ошибку 503 самостоятельно не получилось, обратитесь за помощью к специалистам из технической поддержки или хостинг-провайдера.
Главный совет, как избежать не только этой, но большинства других ошибок, — проводите анализ с помощью логов. Там есть всё, что нужно: причины ошибок, нагрузка и многое другое.
А теперь — прочие лайфхаки:
- Увеличьте ресурсы. Если сайт часто бывает перегружен, стоит задуматься над тем, чтобы повысить его производительность, — например, увеличить объём памяти или добавить процессорной мощности. Это затратно, но эффективно.
- Используйте кэширование. Оно снижает нагрузку, ускоряет загрузку страниц и уменьшает количество запросов к нему.
- Оптимизируйте код. Медленный код — большая нагрузка. Поэтому есть повод привести его в порядок.
- Применяйте балансировщики нагрузки. Они помогут более рационально распределить запросы между несколькими серверами. Это уменьшит нагрузку на отдельные узлы и обеспечит их более высокую доступность.
- Установите системы мониторинга. Снова отсылка к логам. Мониторинг позволяет быстро обнаруживать проблемы и решать их до того, как всё начнёт гореть.
Итак, краткая памятка по HTTP-коду 503 (ошибке Service Temporarily Unavailable):
- Она возникает, когда сайт не может обработать запрос пользователя.
- Она встречается на любом сайте — даже на том, где всё, казалось бы, хорошо.
- Причины могут быть разными — например, перегрузка, устаревшее ПО или сбой в работе.
- Если ошибка возникла, стоит проверить логи, а затем попробовать перезапустить сервер.
- Чтобы избежать ошибки, нужно оптимизировать работу сайта, использовать балансировщики нагрузки, встроить системы мониторинга.
Научитесь: Профессия Python-разработчик
Узнать больше
Инструкции для обычных пользователей и для администраторов сайтов.
Что означает ошибка 503
Код 503 сообщает, что запущенный сервис недоступен (Service Unavailable). Чаще всего это ненадолго: например, доступ к ресурсу закрывают на время перезагрузки или для проведения технического обслуживания.
Но иногда ошибка 503 возникает из-за того, что работа системы организована неправильно. Сервер взаимодействует с очередью запросов: принимает их, обрабатывает и выдаёт ответ. С лёгкими запросами он справляется быстро, со сложными — долго. Если таких тяжёлых запросов много, очередь продвигается медленно.
Длина очереди обычно фиксированная. Когда вы заходите на сайт, то отправляете запрос серверу. Если для него нет места, появится ошибка 503.
Что делать пользователю при ошибке 503
Попробуйте выполнить эти действия — есть шанс, что проблема решится.
Проверьте, у всех ли возникает ошибка
Эти онлайн-сервисы покажут, все ли пользователи не могут получить доступ к сайту или ошибка 503 появляется только у вас:
- Down for Everyone or Just Me;
- Website Planet;
- 2IP.
Последний особенно удобен: он делает запросы к сайту с серверов из разных стран и показывает код ответа. Если хотя бы в одном случае есть ошибка 503, значит, вы точно не одиноки.
Если сервисы показывают, что ресурс доступен, попробуйте зайти на него с другого устройства. Или попросите друзей проверить, всё ли с сайтом в порядке.
Подождите и попробуйте позже
Обновите страницу. Если по-прежнему видите ошибку 503, попробуйте зайти на сайт позднее: через пару минут или когда там потенциально будет меньше пользователей. Это касается прежде всего игр или ресурсов, которые резко стали популярны. Например, если государство объявило о новых выплатах, которые оформляются онлайн, мощностей сервера может на всех не хватить.
Перезагрузите устройство
Если проблема возникает только у вас, перезагрузка смартфона, компьютера или планшета может помочь.
Если это не сработало, перезапустите и роутер. Сделать это можно тремя способами.
1. Через панель управления
Обычно она находится по адресу 192.168.0.1 или 192.168.0.1. IP вводится прямо в браузере, но возможны варианты — сверьтесь с инструкцией к вашей модели.
В панели нужно найти кнопку «Перезагрузка» или «Перезагрузить»: она может быть в меню «Система», «Системные» и так далее. Нажмите и дождитесь, пока страница обновится.
2. С помощью кнопки отключения
Кнопка On / Off обычно находится на задней панели роутера. Нажмите на неё, подождите 20–30 секунд и включите устройство снова. Этого времени хватит, чтобы конденсаторы разрядились, чипы памяти перестали получать питание, все временные данные сбросились.
Важно! Не перепутайте кнопку On / Off с Reset, которая не только перезагружает роутер, но также сбрасывает его настройки. Если кнопка утоплена в корпус и, чтобы нажать на неё, требуется спичка или отвёртка, точно не пытайтесь достать её.
3. С помощью отключения из розетки
Выньте адаптер питания из розетки, подождите 20–30 секунд и подключите снова.
Смените DNS-адреса
DNS (Domain Name System — система доменных имён) переводит текстовые URL-адреса сайтов в IP, например https://lifehacker.ru/ в 116.202.209.72. Такой конвертацией занимаются DNS-серверы. Проблемы на них иногда приводят к тому, что вы видите ошибку 503.
К счастью, адреса DNS-серверов можно сменить. Так, вы можете использовать IP публичных DNS Google: 8.8.8.8 и 8.8.4.4 для стандарта IPv4, 2001:4860:4860::8888 и 2001:4860:4860::8844 для нового IPv6. Вот как это сделать.
1. На компьютере с Windows
Нажмите Win + R. В окне «Выполнить» введите ncpa.cpl и нажмите Enter.
Выберите подключение, которое используете, кликните по нему правой кнопкой, нажмите на «Свойства».
В списке компонентов найдите пункт «IP версии 4» или «TCP/IPv4», нажмите «Свойства». Установите переключатель «Использовать следующие адреса DNS-серверов», введите 8.8.8.8 и 8.8.4.4 в две строки.
Если в списке компонентов у вас есть «IP версии 6» или «TCP/IPv6», можете аналогично задать адреса 2001:4860:4860::8888 и 2001:4860:4860::8844.
Желательно также сбросить кеш DNS. Для этого снова зажмите Win + R, в окне «Выполнить» введите cmd.
В консоли напишите ipconfig /flushdns и кликните Enter.
2. На компьютере с macOS
Зайдите в меню «Системные настройки» — «Сеть». Если слева внизу вы видите иконку с закрытым замком, кликните по ней и в появившемся окне введите пароль администратора.
Кликните по нужному подключению и выберите в меню пункт «Дополнительно».
На вкладке DNS нажмите на «+» и добавьте адреса в список.
Очистите кеш DNS. Запустите терминал, напишите команду sudo killall -HUP mDNSResponder. Затем нажмите Return и введите пароль администратора.
3. На роутере
Зайдите в панель управления роутера и найдите пункт с адресами DNS-серверов — они могут быть в настройках DHCP. Введите два адреса нужного формата (IPv4 или IPv6) — в зависимости от того, что поддерживает ваше устройство.
Очистите кеш YouTube на Android
На Android-устройствах ошибка 503 в приложении YouTube иногда возникает из-за повреждённой информации в кеше. Попробуйте очистить его, чтобы сервис снова заработал. Действуйте так.
Зайдите в настройки. В списке приложений найдите YouTube.
Остановите его работу и нажмите «Очистить кеш». Затем снова запустите приложение.
Уменьшите список воспроизведения YouTube
Иногда ошибка 503 возникает, когда в вашем списке воспроизведения «Смотреть позже» слишком много видео. Попробуйте уменьшить его, а затем перезагрузите страницу или приложение.
Свяжитесь с администрацией ресурса
Возможно, администраторы сайта ещё не в курсе проблемы. Или, наоборот, знают, как её решить либо через сколько всё заработает. Словом, если ничего из перечисленного не помогло, обратитесь к ним.
Что делать администратору при ошибке 503
Всё зависит от движка вашего сайта и его настроек. Выбирайте подходящие варианты и проверяйте, решило ли это проблему.
Установите параметр Retry After
Он показывает, сколько времени после получения ошибки 503 должен подождать клиент до следующего запроса к серверу. Значение указывается в миллисекундах, его величину вы задаёте самостоятельно. Это предупредит слишком частые повторные запросы.
Пересмотрите время выполнения регулярных заданий
Отправку рассылок и другие задачи, которые обычно располагают в системном Cron, перенесите на время минимальной загрузки сервера. А заодно освежите в памяти правила пользования хостингом, чтобы не нарушить ограничения по количеству отправленных писем и времени работы скриптов.
Установите защиту от DDoS-атак
Это также запросы, которые поступают в общую очередь. Избавитесь от них — сможете быстрее предоставлять пользователям доступ к своему ресурсу.
Не передавайте крупные файлы через HTTP
Обычно хостеры ограничивают время работы скриптов. Если вы будете передавать большие файлы через такой скрипт, высока вероятность, что в лимит вы не вложитесь. К тому же передача будет занимать отдельный процесс, а значит, он не сможет обрабатывать запросы из общей очереди.
Передача файлов напрямую в этой ситуации выгоднее. В ней задействуется многопоточный процесс, который не так влияет на скорость загрузки сайта или сервиса в целом.
Удалите тяжёлые или устаревшие компоненты CMS
Попробуйте по очереди отключать компоненты вашей CMS и смотреть, как меняется ситуация. Если вы нашли потенциальный источник проблемы, попробуйте обновить этот компонент. Или подумайте, как обойтись без него — например, заменить на более новый и быстрый аналог.
Объедините ресурсы в один файл, чтобы уменьшить число запросов
Если ваше веб-приложение использует множество мелких ресурсов (изображений, таблиц стилей, скриптов и так далее) и загружает каждый из них отдельным запросом, они могут занимать значительную часть очереди. Чтобы решить проблему, объедините всё в один файл.
Уберите соединения с удалёнными серверами
Они могут не отвечать слишком долго. А тем временем остальные запросы к вашему серверу будут ждать обработки.
Бывает, что в скриптах вместо локальных путей используются глобальные, формата http://…. Они также воспринимаются как запросы к удалённому серверу и замедляют работу.
Поищите такие проблемы в коде, и, если без удалённого сервера не обойтись, выставьте небольшой тайм-аут на ожидание. Предусмотрите действия на случай, если он не успеет ответить.
Оптимизируйте MySQL-запросы
Если вы используете MySQL и часть запросов выполняется достаточно медленно, некоторые хостинги автоматически создают файл логов mysql-slow.log. В нём собираются наиболее проблемные обращения к базе данных. Проанализируйте их и по возможности выполните оптимизацию.
Также проиндексируйте базу и попробуйте задействовать кеширующие компоненты, которые позволили бы уменьшить количество запросов.
Установите антилич
Если другой веб-мастер использует прямые ссылки на ваш ресурс, например вставляет у себя на страницах ваши картинки, это также увеличивает очередь запросов. Антилич-модули и настройки эффективно борются с этим. Некоторые хостеры позволяют включить их в панели администрирования. Для других нужно всё настроить вручную, например через правила mod_rewrite в файле .htaccess или отдельные модули.
Установите кеширующие компоненты
Они помогут вам разгрузить очередь запросов и сократить среднее время их обработки. В результате для новых обращений останется место, и пользователи не будут видеть ошибку 503.
Проконсультируйтесь с хостером
Возможно, проблема не только у вас, и специалисты хостинг-компании знают, как её решить. Нелишним будет перед этим пробежаться по FAQ-материалам и просмотреть свежие темы на форуме ресурса. Есть вероятность, что там уже лежат готовые инструкции.
Читайте также 👩💻💻🎮
- Как исправить ошибку CPU Fan Error при загрузке компьютера
- Как очистить кеш браузера
- 21 способ ускорить интернет, если всё висит
- Что означает 404 Not Found и другие ошибки веб-страниц
- Что делать с ошибкой «Запуск этого устройства невозможен. (Код 10)» в Windows 10
Ошибки 5XX означают, что есть проблемы со стороны сервера. Например, 500 ошибка значит, что сервер столкнулся с внутренней ошибкой, из-за которой не смог обработать запрос. К ней могут привести неверные директивы в .htaccess или ошибки в скриптах сайта. А ошибка 503 означает, что сервер не может обработать ваш запрос в данный момент. После номера ошибки часто идёт краткое описание. 503 ошибка сервера часто сопровождается фразой «Service Temporarily Unavailable» (сервис временно недоступен). Если на вашем сайте часто встречается 503 ошибка, значит самое время выяснить её причину.
В этой статье мы рассмотрим возможные причины возникновения 503 ошибки на сайте и способы её устранения.
Ошибка 503 Service Unavailable
Что такое ошибка 503 (Service Temporarily Unavailable)
Эта ошибка означает, что сервер не готов обработать запрос в данный момент. Подразумевается, что это временно и нужно повторить попытку позже. Но это не всегда так. HTTP 503 Service Unavailable — это код состояния, который содержится в ответе веб-сервера и показывает, успешно ли выполнен запрос. Коды 5XX принадлежат классу серверных ошибок. В спецификации RFC 7231 указано, что код 503 сообщает о том, что сервер в настоящее время не может обработать запрос из-за временной перегрузки или планового технического обслуживания
Спецификация RFC 7231
Если вы встретили эту ошибку, скорее всего, веб-сервер не успевает обрабатывать все поступающие на него запросы из-за нехватки ресурсов или технического обслуживания. Однако бывает, что ошибка 500 возникает не со стороны сервера, а со стороны клиента. Поэтому сначала стоит определить, на чьей стороне проблема. Если вы не являетесь администратором сайта, на котором встретили ошибку, проверьте, нет ли проблем с вашей стороны.
Как исправить ошибку 503 со стороны пользователя
-
1.
Перезагрузите страницу при помощи клавиши F5. Бывает, что проблема действительно временная и возникла в прошлый раз, когда вы пытались открыть страницу.
-
2.
Если после нескольких перезагрузок страницы ошибка всё равно возникает, попробуйте открыть сайт через другой браузер. Если в другом браузере ошибка не воспроизводится, очистите кэш на своем браузере. Например, в Google Chrome нажмите комбинацию клавиш Ctrl+Shift+Delete:
Очистить историю в Google Chrome
-
3.
Если действия выше не помогли, попробуйте перейти на сайт с другого устройства. Будет лучше, если оно будет подключено к другой сети, чтобы исключить проблему со стороны интернет-провайдера. Откройте сайт на телефоне через мобильный интернет или попросите сделать это кого-нибудь ещё. Если на другом устройстве сайт работает, попробуйте перезагрузить ваше устройство. При возможности то же самое лучше сделать и с роутером.
-
4.
Если ничего из перечисленного вам не помогло, попробуйте связаться с владельцем сайта. Сделать это можно через форму обратной связи или по email, указанному на сайте. Если недоступен сайт целиком, а не какая-то определенная страница, попробуйте найти контакты в поисковых системах, в социальных сетях или на форумах.
Эти действия помогут понять, с чьей стороны проблема. Если вам самостоятельно не удалось решить проблему, то остаётся только ждать решения проблемы владельцем сайта. Скорее всего, это массовая проблема, и её решением уже занимаются. Попробуйте открыть сайт позже.
Ошибка недоступности, если вы владелец сайта
Частые ошибки 503 на вашем сайте могут негативно сказаться на позициях в поисковых системах и привести к снижению трафика. Посетители могут просто не вернуться на ваш сайт. Не игнорируйте проблему и сразу приступайте к её решению. Вот несколько вариантов решения:
- На любом хостинге есть ограничения и лимиты, которые не стоит превышать. Их устанавливает хостинг-провайдер. Превышение лимитов может привести к возникновению проблем на сайте, в том числе и к ошибке 503. Изучить характеристики вашего тарифного плана вы можете на сайте хостинг-провайдера. Для хостинга REG.RU действуют следующие технические ограничения.
- Хостинг может не справляться с большим количеством посетителей на сайте. В этом случае может помочь смена тарифного плана или переезд к новому хостинг-провайдеру.
- Бывает, что неактуальные версии плагинов и других компонентов движка нарушают работу сайта. Попробуйте по очереди отключать установленные плагины вашей CMS и проверять работоспособность сайта после каждого. Если ошибка не возникает после отключения очередного плагина, обновите этот плагин до последней версии. Возможно, что в новой версии разработчик уже внёс исправления. Если обновление не помогло, плагину нужно искать альтернативу.
- Регулярно обновляйте CMS и её компоненты. Зачастую обновления направлены на оптимизацию работы движка, устранение уязвимостей, борьбу с багами, повышение безопасности и быстродействия. Удалите все ненужные компоненты, которыми не пользуетесь. Оставьте только самые необходимые, чтобы уменьшить нагрузку на сервер.
- Проанализируйте скрипты сайта. К HTTP Error 503 может привести неправильная работа скриптов на сайте. Выполните их диагностику и убедитесь, что на сайте не включен режим технических работ.
- Не загружайте крупные файлы при помощи PHP. Очень часто хостинг-провайдер ограничивает время выполнения скрипта, и вы можете не уложиться в этот лимит. Ещё одним минусом передачи файлов через PHP является создание отдельного PHP-процесса, который будет занят загрузкой файла, а не обработкой запросов посетителей. Загружайте файлы по FTP, чтобы уменьшить нагрузку на хостинг.
- Запускайте массовые почтовые рассылки в периоды минимальной активности на вашем сайте. Точно так же стоит поступить и с техническими работами на сайте и сервере.
- Поисковые роботы могут генерировать большое количество обращений к сайту. Проанализируйте статистику по User-Agent и выясните, какие роботы создают нагрузку. При помощи файла robots.txt задайте временной интервал обращений.
- Настройте кэширование средствами CMS или хостинга. В WordPress вы можете настроить кэширование с помощью нашей инструкции: Что такое кэширование и как управлять им в WordPress. В панели управления хостингом тоже часто имеются встроенные инструменты по настройке кэширования.
- Запросы к сторонним ресурсам могут замедлять генерацию и отдачу контента, что в итоге может привести к 503 ошибке. Если удалённый сервер недоступен, ваш сайт потратит больше времени на ожидание ответа. Уменьшите тайм-аут ожидания ответа от стороннего ресурса или вовсе откажитесь от таких запросов. Работоспособность сторонних сервисов невозможно контролировать.
Не всегда проблему можно решить самостоятельно. Иногда лучше сразу обратиться за помощью к опытным специалистам. Если считаете, что вашего опыта и умений недостаточно для решения проблемы, свяжитесь со службой поддержки вашего хостинг-провайдера.
Ошибка 503 на хостинге REG.RU
-
1.
Ошибка может возникнуть из-за превышения лимита на количество PHP-процессов. Согласно техническим ограничениям, на тарифных планах Host максимальное количество процессов PHP составляет 4, на тарифных планах VIP — 32.
Чтобы посмотреть запущенные PHP-процессы, подключитесь по SSH и выполните следующую команду:
ps aux | grep php | grep u1234567
Где u1234567 — ваш логин хостинга (Как узнать логин хостинга).
Чтобы завершить текущие php-процессы, измените версию PHP на отличную от текущей. Затем включите версию PHP, которая была установлена ранее.
-
2.
Максимальное количество процессов на тарифных планах Host составляет 18, а на VIP — 48. Если общее количество процессов (PHP, IMAP, Cron и др.) будет превышено, то может возникнуть ошибка «503 временно недоступен».
Технические ограничения хостинга REG.RU
Чаще всего причиной является большое количество процессов IMAP из-за многочисленных подключений к ящикам. В качестве решения проблемы попробуйте подключаться к почтовому серверу по протоколу POP3. Это позволит уменьшить общее количество процессов.
-
3.
Максимальное количество HTTP-запросов в секунду на один домен: 75 на тарифах Host и 300 на VIP. При превышении этого лимита 503 ошибку может возвращать весь сайт или часть контента на нём. Причиной может быть большое количество запросов в секунду или контента на сайте (картинки, баннеры).
-
4.
На VPS ошибка может возникнуть из-за DDoS-атаки, из-за которой увеличивается нагрузка на сервер.
Если вам не удалось решить проблему на хостинге REG.RU самостоятельно, напишите заявку в службу поддержки.
Ошибка 503 (ERROR Service Unavailable с англ. «Сервис временно недоступен») — это код ответа сервера, который говорит о том, что по техническим причинам сервер не в состоянии обработать текущий запрос. Простыми словами, ошибка 503 — это ответ сервера при его медленной работе, большом количестве запросов или подвисания определенных скриптов на сайте.
Логика появления сбоя следующая: все запросы обрабатываются в порядке живой очереди, при этом самые «тяжелые» из них ждут дольше всего, а простые обрабатываются в первую очередь. Но даже сама очередь всегда ограничивается определенным числом запросов: если поступающий запрос выходит за ее пределы, сервер отдает 503-й код.
Почему возникает ошибка 503
Мы подготовили 2 группы источников ошибки. Внимательно изучите каждую, и без труда найдете виновника сбоя.
Группа 1. Излишнее количество запросов, отправляемых к серверу
Здесь можно выделить как минимум пять источников ошибки.
- Хакерские атаки. Подобная техника вывода сайта из строя характерна, например, для DDoS-атак.
- Разобщение ресурсов. Необходимые для отображения страницы компоненты загружаются в качестве самостоятельных запросов. Вместо того чтобы загружать медиафайлы (например, изображения или анимации), JavaScript и «стили» одним файлом, все эти компоненты разрознены. И, соответственно, они отправляются по разным запросам.
- Внедрение скриптов или URL. Если вы пытаетесь задействовать JavaScript на чужом сайте, будьте готовы, что сервер выдаст 503-й ответ. То же самое касается попыток внедрения информеров или любых URL на изображения сайта.
- Определенный компонент сайта постоянно отправляет запросы на веб-сервер. Это вредно, бесполезно и ухудшает быстродействие сервера + увеличивает скорость загрузки вашего сайта. В качестве такого компонента могут выступать разные элементы: виджет, установленная тема или какой-либо плагин. Допустим, вы захотели внедрить на коммерческую страницу окно с чатом. Если оно создано на базе AJAX — а это весьма распространенный сценарий — готовьтесь к бесконечному количеству запросов и увеличению нагрузки на сервер.
- Нагрузка, создаваемая краулерами поисковых систем или других сервисов. Пауки «Гугла», «Яндекса» и других поисковых систем автоматически обходят все сайты в интернете. Да, вы можете добавить рекомендательные директивы в файл robots.txt, но чаще всего краулеры их не соблюдают. Еще более серьезную нагрузку могут создавать пауки сторонних сервисов, например, краулеры Netpeak, Megaindex, Serpstat.
- Плагины вCMS. Если вы вебмастер и проблема возникает на вашем сайте, обращайте внимание на установленные в CMS плагины: часто они конфликтуют друг с другом или, например, с темой сайта.
- Отключение сервера. Еще одна причина, о которой мы не сказали выше — временное отключение сервера (например, при возникновении хакерских атак на хостинг или на время выполнения регламентных работ по обслуживанию машин).
Решение: установите на свой сайт CloudFlare или другой защитный экран.
Решение: удалите лишние неиспользуемые скрипты, внедрите кэширование страниц, уменьшите размер изображений, обязательно продиагностируйте CSS.
Решение: установка антилич-плагина для используемой 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]
Решение: найти компонент, который постоянно отправляет запросы на сервер, и отключить его. Если вы затрудняетесь обнаружить такой элемент самостоятельно, свяжитесь с поддержкой используемого хостинга.
Решение: в robots.txt укажите конкретных user-agent’ов, которые создают серьезную нагрузку на сайт. Если это не помогло, попробуйте заблокировать конкретные IP-адреса. В случае с краулерами такой подход чаще всего не сработает: у них обычно не статические IP.
Решение: Попробуйте отключить те плагины, которые вы устанавливали недавно и понаблюдайте за проблемной страницей. Если она открылась, значит причина была именно в каком-то из плагинов, а точнее — внутренних ошибках, которые создавал такой плагин. Если вы не знаете, какой именно плагин является причиной ошибки, отключите их все. Затем начните включать поэтапно, а затем проверяйте доступность проблемной страницы. Если дело было в плагине, рано или поздно страница откроется без ошибки. После нахождения плагина-виновника удалите его через административную панель вашей CMS или замените другим с аналогичным функционалом.
Решение: Диагностировать эту причину можно, задав соответствующий вопрос в саппорт хостинга. Специалист технической поддержки сообщит о перебоях в работе сервера.
Группа 2. Негативное воздействие одного или нескольких скриптов
В этой группе можно выделить 5 причин появления сбоя.
- «Тяжелые» запросы, отправляемые к базе данных MySQL. Если число таких запросов велико, ошибка может появляться время от времени. Решение для вебмастера — глобальная оптимизация запросов, отправляемых в SQL.
- Слишком «тяжелые» скрипты. Даже 1-2 плохо оптимизированных скрипта могут создавать колоссальную нагрузку на сервер.
- Передача файлов большого размера непосредственно через PHP. Этот источник сбоя возникает при попытке передать статичные файлы через какие-либо скрипты, например, при помощи средств того же PHP. Это некорректный подход.
- Регулярное использование почтовых сервисов. Каждый раз, когда скрипт e-mail-рассылки инициализируется, возрастает нагрузка на сервер.
- Взаимодействия с программным сервером. Самый частый сценарий — подключение к удаленному серверу. Это сулит дополнительные сложности: совершение ненужных HTTP-запросов, появление тайм-аутов, обрывы связи, излишнее ожидание ответа.
Решение: индексация таблицы базы данных непосредственно по колонкам из выборки. MySQL хорош тем, что все «тяжелые» запросы автоматически фиксируются в папке logs:
Вы без проблем найдете все «медленные» запросы и сможете оптимизировать их в дальнейшем, либо просто заменить.
Помочь также может внедрение кэширования страниц, изменение темы сайта (эта причина обнаруживается чаще, чем другие), отключение неоптимизированных плагинов. Иногда проблем настолько много, что решить их сразу может только переезд на другую систему управления контентом.
Обязательно убедитесь, что проблемная страница может установить соединение с БД MySQL. В противном случае и будет возникать 503 ответ сервера.
Решение: ресурсоемкие сценарии должны быть отключены или заменены на те, которые не создают высокой статической нагрузки.
Решение: перестать передавать статичные файлы больших размеров через скрипты. Если вам нужно отправить очень тяжелый файл, лучше делайте это через FTP. Статичные файлы серьезного размера должны передаваться исключительно прямым образом, без участия скриптов.
При прямой передаче статичных файлов используется отдельный процесс, поддерживающий большое количество потоков. Такой процесс в состоянии работать сразу с несколькими запросами и без влияния на скорость подгрузки компонентов страницы.
Решение: изучайте лимиты по суммарному числу емейлов, которые допустимо отправлять через используемый вами хостинг.
Важно и время запуска скрипта почтовой рассылки. Его лучше настроить на тот период, когда статическая нагрузка вашего сайта на сервер является наименьшей: например, глубоко ночью или очень рано утром.
Настраивайте расписание самой рассылки через функцию крон в административной панели выбранного хостинга, а не сторонними способами, например, через плагины для CMS.
Решение: соединение с таким веб-сервером нужно минимизировать, а лучше вообще избавиться от него.
Еще одна причина появления 503 ошибки, которая не относится ни к первой, ни ко второй группе источников — это начальные тарифные планы хостинга. На них существуют значительные ограничения по допустимой нагрузке на сервер и он может не справляться даже с небольшой посещаемостью. Особенно это касается бесплатных хостингов.
Как еще исправить ошибку 503: дополнительные советы пользователю
- Напишите в саппорт сайта и уточните, почему не открывается страница. Обычно email для технических вопросов вынесен отдельно на странице контактов.
- Отключите сетевое оборудование (например, Wi-Fi роутер) примерно на 2-3 минуты. Это поможет, если ошибка возникает на уровне IP-адреса. При перезагрузке сетевого оборудования вашему устройству будет присвоен новый IP, а проблемы с открытием страницы будут решены. Этот способ сработает только в том случае, если ваш интернет-провайдер присваивает вам динамический, а не статический адрес.
- Обновите проблемную страницу с очисткой кэша. Для этого используйте сочетание горячих клавиш Control + F5. Полезно также целиком очистить все временные файлы в используемом браузере.
- Откройте проблемную страницу через другой браузер. В очень редких случаях браузер может идентифицировать 503-й ответ сервер ошибочно. Изменение браузера поможет диагностировать этот источник ошибки. Вы также можете просто закрыть браузер и запустить его заново. Если причина возникновения ошибки связана только с текущей сессией, перезагрузка браузера также решит эту проблему.
- Перезагрузите систему. В редких случаях причиной ошибки может быть сбой ОС. Он может возникать как на уровне системного, так и стороннего ПО. Перезагрузка системы в вышеуказанных сценариях станет решением.
При такой очистке вы автоматически выйдете из всех аккаунтов (на всех сайтах), где прошли авторизацию ранее.
Резюме
Мы убедились, 503 ошибка чаще всего появляется на стороне вебмастера. Среди самых частых сценариев можно назвать некорректные параметры на уровне сайта или внутри самого хостинга. Проверяйте их в первую очередь, и лишь потом разбирайте второстепенные варианты, описанные нами выше.
Сообщение на странице сайта 503 Service Temporary Unavailable – “сервис временно недоступен” может появляться из-за технических сбоев как на сервере, так и на компьютере пользователя. Последнее случается реже.
Наиболее распространенная причина проблемы – перегруженность сервера запросами. Он не успевает их обрабатывать, и всем клиентам в очереди выдает ошибку с кодом 503. Такая картина может наблюдаться, например, во время DDoS-атаки.
Обнаружив ошибку 503, лучше всего ничего не делать. Подождите 3-5 минут. Очередь запросов в большинстве случаев – временное явление, и вскоре сайт станет доступен. Чего точно не нужно делать,– это постоянно перезагружать страницу с ошибкой. Так вы только увеличиваете число запросов в очереди.
Как устранить ошибку 503 на стороне пользователя?
Сразу скажем, что вряд ли пользователю удастся ее исправить. Ошибка 503 чаще возникает из-за проблем на самом сайте или хостинге. Но на всякий случай можно выполнить несложные быстрые действия, чтобы быть точно уверенным – причина не в вас.
- Проверьте доступность сайта с помощью специальных сервисов. Например, https://2ip.ru/site-availability/. Если проверка показала, что из вашей страны сайт доступен – исправить ошибку 503 нужно на вашей стороне.
- Перезагрузите страницу с помощью клавиш Ctrl F5 (в браузерах macOS используйте сочетание Cmd + R или Cmd + Alt + E в Safari.
- Попробуйте открыть страницу в другом браузере, на другом компьютере. Так вы определите уровень возникновения проблемы – у вас в браузере или у вас на компьютере – и будете действовать исходя из этого. Если страница везде выдает Error 503 – то причина все же на самом сайте.
- Закройте браузер и откройте заново. Иногда это помогает сбросить неправильные настройки сессий.
- Почистите кэш и cookies браузера. Большое количество сохраненной старой информации может мешать браузеру обрабатывать соединение правильно.
- Откройте страницу в режиме инкогнито или просто отключите все работающие в браузере дополнения и расширения – возможно, какое-то некорректно работает и приводит к появлению ошибки 503.
- Перезагрузите компьютер. Это самый простой и быстрый способ исправить сбой в работе ПО.
- Если не помогла перезагрузка компьютера – перезагрузите также роутер.
Что делать, если ошибка 503 – на стороне веб-ресурса?
Прежде всего, администратору сайта для ошибки сервера с кодом 503 желательно прописать параметр Retry After. Он будет показывать клиенту, через какое время тот может попробовать повторно соединится с сервером. Это уменьшит число бесконечных перезагрузок страниц и поможет снизить и без того чрезмерную в данный момент нагрузку на сервер.
Распространенные причины возникновения ошибки 503 и их исправление
В основном, ошибка 503 Service Unavailable вызывается следующими категориями причин:
- Слишком много запросов к веб-серверу.
- Много медленных запросов к MySQL.
- На сайте много устаревших, нерабочих, конфликтующих плагинов и модулей CMS.
- Неоптимизированная работа скриптов.
Также ошибка 503 может быть вызвана тем, что ваш сайт “перерос” возможности вашего хостингового тарифного плана. В этом случае стоит подумать над тем, чтобы выбрать более производительный тариф виртуального хостинга или же VPS/VDS, выделенный сервер.
Как исправить причины ошибки
Уменьшаем число запросов к веб-серверу
Устранение ошибки 503 прежде всего подразумевает снижение нагрузки на веб-сервер. Для этого:
- установите антилич-систему. Она не позволит скачивать ваши файлы и картинки по ссылке на сторонних ресурсах – ведь так увеличивается нагрузка на ваш сервер и может возникать ошибка 503;
- ограничьте деятельность различных ботов и роботов. При сканировании они создают множество запросов;
- проверьте, чтобы на сайте было как можно меньше ссылок на внешние ресурсы. Оставьте только необходимые и важные. Например, иногда можно встретить большое количество информеров на странице. Каждый информер – ссылка на другой сайт, соединение с чужим сервером. Это создает дополнительную нагрузку на сервер;
- по возможности объедините обращения к большому числу мелких файлов (скриптов, картинок, таблиц стилей), чтобы они обрабатывались одним запросом, а не множеством.
Оптимизируем работу с MySQL
- Включите кеширование – так время обработки запроса существенно уменьшится.
- Объединяйте запросы к БД (базе данных), чтобы один запрос обрабатывал сразу множество строк или столбцов, а не по одному.
- Используйте индексирование по столбцам, которые часто используются в выборках.
- Старайтесь не вкладывать один запрос в другой, так как в этом случае MySQL часто не может использовать индексы и будет долго возвращать результат.
Исправляем проблемы с CMS
Ошибка 503 Service Unavailable может быть вызвана некорректно работающими или “тяжелыми” компонентами движка вашего сайта. Чтобы выявить это, отключайте последовательно плагины или модули. Так вы найдете компонент, после выключения которого все начнет нормально работать. Оптимизируйте его или замените на более современный и быстрый.
Также рекомендуется поддерживать порядок в вашем “парке” плагинов – вовремя их обновлять, удалять те, что не используются, Плюс необходимо отслеживать корректность работы сайта после установки каждого нового модуля, а также после обновления старых – могут возникать конфликты программного обеспечения.
Оптимизируем работу скриптов
- В скриптах поставьте локальные ссылки вместо глобальных. В глобальных указывается полный URL вместе с http, https. Они обрабатываются как отдельные запросы к внешнему ресурсу, и это гораздо большая нагрузка, чем при использовании ссылок локального вида.
- Не передавайте файлы большого размера с помощью скриптов. Во-первых, такая передача задействует рабочие процессы сервера, нагружает его. Во-вторых, она может давать сбои, так как работа скрипта ограничена по времени,и процесс зависает.
- Выполнение “тяжелых”, масштабных скриптов и операций (почтовой рассылки, например) запланируйте на то время, когда на сайте меньше всего посетителей.
Что можно сделать для предотвращения проблемы?
В заключение дадим несколько советов – как предотвратить возникновение ошибки 503 Service Unavailable:
- При выборе тарифа хостинга не ориентируйтесь на среднюю нагрузки вашего сайта. Закладывайте небольшой запас мощностей, чтобы в часы пик ресурсов сервера хватало на обработку запросов.
- Установите защиту от DDoS-атак.
- Обновляйте плагины, темы и модули CMS, отключайте то, что не используете.
- Регулярно анализируйте работу компонентов сайта: сервера, базы MySQL, скриптов – и вовремя оптимизируйте их, не доводя ситуацию до критической.
- Ограничьте сканирование сайта ботами и User-агентами. Оставьте только то, что необходимо, например, боты поисковых систем, остальные заблокируйте. Обычно хостер сам блокирует большинство ненужных User-агентов, но вы можете добавить и свои кастомные настройки.