Как и любая проблема с доступом к интернет-ресурсам, ошибка 503 Service Unavailable («Сервис недоступен») может быть вызвана сбоями как на стороне пользователя, так и на стороне сервера, на котором находится сайт. Поэтому первое, что нужно сделать, если вы столкнулись с таким сообщением при посещении веб-ресурса, попробовать устранить сбой своими силами. Это намного проще и быстрее, чем пытаться донести информацию о возникших сложностях до владельца сайта.
Процедура устранения проблемы со стороны администратора веб-ресурса более сложная, но в большинстве случаев именно неправильные настройки на уровне хостинга или настроек сайта в панели управления CMS приводят к появлению ошибки сервера с кодом 503.
Мощный хостинг в подарок при заказе лицензии 1С-Битрикс
Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год мощного хостинга – специально для сайтов на 1С-Битрикс.
Заказать
Устранение ошибки 503 пользователем
Возникает резонный вопрос: почему бы просто не покинуть проблемный сайт, пусть сами разбираются со своими багами? Это решение очевидное, но не совсем верное. Во-первых, вам может быть очень необходимо посетить именно этот веб-ресурс. Во-вторых, появление сигнала об ошибке доступа может говорить о том, что с вашим браузером, программным обеспечением, компьютером или другими устройствами что-то не в порядке. И тогда это уже ваша проблема, которая может повторяться систематически и при посещении других сайтов. Рассмотрим, что можно сделать самому, чтобы исправить ошибку 503, двигаясь от простого к сложному.
- Обновите вкладку браузера. Это покажется странным, но зачастую такое простое действие приводит к положительному результату. Нажмите клавишу F5 или воспользуйтесь специальной кнопкой в меню браузера.
- Закройте и откройте браузер. Таким образом вы произведете сброс текущей сессии соединения и обновите его. При новом подключении скрипт браузера может не обнаружить ошибку 503, если она была воспринята им ошибочно.
- Стоит убедиться, что сбой не связан именно с вашим компьютером. Это особенно актуально, если ошибки соединения с веб-ресурсами повторяются регулярно и возникают с разными кодировками на других сайтах. Для этого необходимо посетить проблемную страницу с другого устройства и желательно через новое интернет-соединение.
- Зайдите на страницу, выдавшую ошибку 503, используя другой браузер. Вполне вероятно, что дефект возникает из-за некорректных настроек текущего. Если это подтвердится, стоит в них покопаться и найти источник возникновения проблемы. Самое простое, это восстановить настройки по умолчанию.
- Перезагрузка компьютера. Как и любой программный сбой на уровне операционной системы или другого программного обеспечения, он может быть исправлен автоматически при новой загрузке системы.
- Очистка кэша и удаление файлов cookies. В зависимости от настроек конкретного браузера в них может сохраняться много «лишней» информации при обмене web-данными. Операция довольно несложная, но стоит предварительно посмотреть help по данному вопросу, т.к. в каждом браузере она проводится по-разному.
- Перезагрузка сетевого оборудования. Часто сложности при соединении с интернет-ресурсами возникают из-за некорректного поведения ПО на внешних устройствах, через которые вы получаете трафик. Это может быть роутер, раздающий интернет как по кабелю, так и через Wi-Fi. Необходимо отключить соответствующую железку по питанию, т.е. полностью обесточить ее примерно на одну минуту. Если провайдер выдает вам динамический ip-адрес, то произойдет его смена, что тоже может привести к устранению появления ошибки 503.
- Смена DNS-адреса на сервере. Это решение является наиболее сложным для обычного пользователя. В большинстве интернет-соединений используется общедоступный DNS-адрес Google. Изменить его можно через «Панель управления компьютера» в «Центре управления сетями и общим доступом». Данные манипуляции довольно критичны для устойчивой работы интернета на вашем компьютере. Поэтому производить их стоит только тогда, когда вы абсолютно уверены в своей IT-подготовке.
Если ни один из вышеприведенных способов не помог, а достучаться до сайта ну очень нужно, пишите о проблеме в техподдержку данного ресурса, приложив скриншот страницы с кодом и описанием ошибки.
Ошибка 503 может отображаться в разных форматах с дополнительными информативными сообщениями. Появление страницы «503 Service Temporary Unavailable – Сервис временно недоступен» говорит о том, что проблема носит временный характер. В этом случае пользователю рекомендуется не предпринимать никаких действий и просто дождаться, когда доступ восстановится автоматически.
Решение проблем с ошибкой 503 администратором веб-ресурса
При возникновении ошибки 503 Service Unavailable в любом ее проявлении администратор web-ресурса в первую очередь должен разобраться в причине ее появления. Игнорирование данной процедуры по принципу «само пройдет» может привести к тому, что сайт понесет глобальные потери в объеме пользовательского трафика и, как следствие, конверсии. Посетители, регулярно сталкивающиеся с проблемами доступа к определенному ресурсу, очень быстро занесут его в «игнор».
В зависимости от конкретного тарифного плана хостинга каждый сайт имеет ограничения по одновременной обработке запросов, поступающих на сервер от конечных пользователей. Более простые запросы браузеров обрабатываются практически мгновенно, сложные ожидают очереди в порядке их поступления. Количество отложенных запросов лимитировано, при превышении нормы каждый следующий отклоняется. В этом случае посетитель сайта видит на экране сообщение с кодировкой error 503.
Наиболее частые причины возникновения ошибки 503 на стороне сервера
- При получении запроса от пользователя конкретная страница сайта не может установить соединение с базой данных MySQL.
- Некорректная работа плагинов и расширений из-за внутренних ошибок или конфликта между собой.
- Использование недорого хостинга и маломощного сервера приводит к тому, что оборудование не справляется с обработкой входящего трафика.
- Ресурсоемкие скрипты создают дополнительную нагрузку на сервер.
- Задействован почтовый сервис, выполняющий автоматическую рассылку сообщений в большом объеме.
- Соединение с удаленным сервером может привести к замедлению обработки запросов.
- Передача файлов большого объема при помощи PHP-скрипта.
- Значительное количество нерабочих модулей конкретной CMS.
Как видим, решение практически всех проблем, приводящих к появлению ошибки 503, достигается использованием более мощных серверов и высокоскоростного качественного хостинга. Отрицательная сторона этого способа в его затратности. Распределение пользовательского трафика неравномерно по времени, и банальный апгрейд железа не поможет полностью исключить сбои в моменты пиковых нагрузок.
Как избежать появления ошибок 503
Для начала рекомендуется провести статистический анализ через административную панель (снять логи), чтобы понять, какие процессы создают максимальную нагрузку на сервер, и произвести определенные изменения в настройках.
Уменьшение нагрузки на базу данных можно добиться следующими способами:
- Регулярное обновление CMS, которое позволяет оптимизировать работу движка, уменьшить количество багов.
- Установка защиты от ботов и парсеров, которые часто запускаются вашими конкурентами, чтобы создать дополнительную нагрузку на ресурс и тем самым вывести его частично или полностью из строя.
- Уменьшение размера и, если это возможно, количества графических файлов на сайте, а также «тяжелых» таблиц.
- Ввод ограничений на количество одновременных участников в чате.
Оптимизация работы скриптов
- Отключите все лишние плагины и дополнения, кроме тех, которые реально необходимы для бесперебойной работы сайта (кэширование, оптимизация базы данных, создание бэкапов, сжатие изображений).
- Осуществляйте передачу файлов большого объема через FTP, т.к. использование других способов передачи данных приводит к созданию отдельного процесса.
- Осуществляйте массовую почтовую рассылку в моменты отсутствия пиковой нагрузки на сайт, например, ночью или ранним утром.
- При использовании удаленного сервера минимизируйте время ответа и оптимизируйте канал соединения.
- Проверьте наличие проблемных запросов к базе MySQL в файле mysql-slow.log.
Дополнительную нагрузку на сервер, приводящую к появлению ошибки 503, могут создать DDoS-атаки. Защита от них с помощью фильтрации относится к отдельной теме обсуждения.
Следует отметить, что ошибка 503, вызванная перегрузкой серверных мощностей, может пройти сама собой, без внешнего вмешательства. Чтобы понять, произошло ли исправление ситуации, достаточно периодически перезагружать сайт.
Заключение
Ошибка 503 Service Unavailable может возникнуть на любом сайте, управляемом одной из наиболее популярных CMS – WordPress (Вордпресс), Joomla (Джумла), DLE (ДЛЕ) и любой другой, использующей базы данных MySQL. Способов ее решения много, начиная от самых простых на уровне пользователя и заканчивая довольно сложными процедурами, которые должен выполнить администратор сайта.
Буду благодарен, если вы нашли нестандартный подход к устранению сбоя с кодировкой 503 и готовы поделиться своим опытом в комментариях!
Ошибки 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
Код 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
Сообщение на странице сайта 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-агентов, но вы можете добавить и свои кастомные настройки.
Время прочтения
7 мин
Просмотры 27K
Работа в поддержке хостинга в основном однотипная, большинство запросов от клиентов решаются по проработанной схеме, но иногда всё же приходится сталкиваться с нетривиальными проблемами. Тогда главная задача инженера — найти тот самый — единственно верный путь, который приведёт к её решению. В этой статье хочу рассказать о том, как мы столкнулись с плавающей ошибкой «HTTP Error 503. Service Unavailable» на нашем shared-хостинге, как пытались её отловить, провели диагностику и получили неожиданный финал.
Начало
Хостинг предоставляет пользователям типичный стек Linux + Apache + Mysql + PHP и оболочку для управления. В нашем случае это ISP Manager 5 business на базе Centos 7 с конвертацией в CloudLinux. Со стороны административной части, CloudLinux предоставляет инструменты для управления лимитами, а так же PHP-селектор с различными режимами работы (CGI, FastCGI, LSAPI).
В этот раз к нам обратился клиент со следующей проблемой. Его сайт на движке WordPress периодически начал отдавать 503 ошибку, о чём он нам и сообщил.
Коды ответа, начинающиеся с 50х, относятся к проблемам на стороне сервера. Это могут быть проблемы как самого сайта, так и веб-сервера, который их обслуживает.
Типичные ситуации, при которых мы получаем следующие ошибки:
- 500 Internal Server Error — довольно часто связана либо с синтаксическими ошибками в коде сайта, либо с отсутствующими библиотеками / не поддерживаемой версией PHP. Так же могут быть проблемы с подключением к базе данных сайта или неверными правами на файлы / каталоги
- 502 Bad Gateway — например, если Nginx ссылается на неправильный порт веб-сервера Apache или процесс Apache по какой-то причине перестал работать
- 504 Gateway Timeout — ответ от Apache не был получен в течение заданного в конфигурации веб-сервера времени
- 508 Resource limit is reached — превышен лимит, выделяемых пользователю ресурсов
В данном списке приведены лишь некоторые, наиболее распространённые случаи. Также стоит отметить, что при превышении лимитов пользователь может получить как 500, так и 503 ошибку.
При выполнении диагностики данных ошибок, первым делом проверяем журналы веб-сервера. Обычно, этого достаточно, чтобы определить виновника и исправить проблему.
Касаемо 503 ошибки в нашем случае, в логах мы видели запись:
[lsapi:error] [pid 49817] [client x.x.x.x:6801] [host XXX.XX] Error on sending request(GET /index.php HTTP/1.0); uri(/index.php) content-length(0): ReceiveAckHdr: nothing to read from backend (LVE ID 8514), check docs.cloudlinux.com/mod_lsapi_troubleshooting.html
На основании только этого лога, определить в чём может быть проблема не представлялось возможным.
Первичная диагностика
Изначально, мы проверили статистику превышения лимитов пользователем. Незначительные превышения были зафиксированы за предыдущие дни, но ошибки в журналах были свежие, более того они появлялись в журнале с периодичностью от одной до нескольких минут.
Так же мы изучили рекомендации CloudLinux, по приведённой в журналах ошибок ссылке.
Изменение каких-либо параметров результата не принесло.
Сайт использовал базу данных на сервере Mysql 5.7, который работает на этом же сервере в контейнере Docker. В логах контейнера присутствовали сообщения:
[Note] Aborted connection 555 to db: 'dbname' user: 'username' host: 'x.x.x.x' (Got an error reading communication packets)
Как раз, среди этих сообщений были сообщения о прерванном подключении исследуемого сайта. Это дало предположение, о том, что подключение к СУБД выполняется некорректно. Для проверки мы развернули копию сайта на тестовом домене, сконвертировали базу данных сайта под нативную в Centos 7 версию СУБД 5.5.65-MariaDB. На тестовом сайте выполнили несколько сотен запросов с помощью утилиты curl. Ошибку воспроизвести не удалось. Но этот результат был предварительным и после конвертации БД на рабочем сайте проблема так и осталась.
Таким образом, проблема некорректного подключения к СУБД была исключена.
Следующим предположением было проверить — нет ли проблем с самим сайтом. Для этого подняли отдельный виртуальный сервер, на нём подняли максимально схожее окружение. Единственное существенное отличие — отсутствие CloudLinux. На тестовом сервере проблему воспроизвести не удалось. Итак, мы определили, что в коде сайта всё в порядке. Тем не менее, пробовали так же отключать плагины WordPress, но проблема так же сохранялась.
В результате, пришли к тому, что проблема на нашем хостинге.
В ходе анализа журналов других сайтов было обнаружено, что проблема наблюдается на многих из них. Порядка 100 шт. на момент проверки:
/var/www/httpd-logs# grep -Rl "ReceiveAckHdr: nothing to read from backend" ./ | wc -l
99
В ходе тестирования обнаружили, что только что установленная чистая CMS WordPress также периодически выдаёт ошибку 503.
Примерно за 2 месяца до этого мы проводили работы по модернизации сервера, в частности изменили режим работы Apache с Worker на Prefork, с целью получить возможность использовать PHP в режиме LSAPI, вместо медленного CGI. Было предположение, о том, что это могло повлиять, либо требуются какие-то дополнительные настройки Apache, но вернуть обратно режим Worker мы уже не могли. В ходе изменения режима работы Apache выполняется изменение всех конфигов сайтов, процесс не быстрый и не всё могло пройти гладко.
Корректировка настроек Apache так же не дала желаемого результата.
Попутно искали схожие проблемы в поисковых системах. На одном из форумов участники утверждали, что проблема у хостера и нужно его менять, если проблему не решают. Звучит не очень оптимистично, когда ты находишься с другой стороны, но и клиента понять можно. Зачем ему нерабочий хостинг.
На данном этапе мы собрали имеющуюся информацию и результаты проведённых работ. С ними обратились в поддержку CloudLinux.
Детальная диагностика
В течение нескольких дней сотрудники поддержки CloudLinux вникали в проблему. В основном рекомендации были относительно установленных лимитов пользователей. Этот вопрос мы так же проверяли. При отключенных лимитах (Опция CageFS для пользователя) и с включенными лимитами в режиме PHP как модуль Apache проблема не наблюдалась. Исходя из этого, было сделано предположение, что каким-то образом оказывает влияние CloudLinux. В итоге, к концу недели запрос был эскалирован на 3-ий уровень поддержки, но решения пока не было.
Попутно изучали документацию Apache по режимам работы CGI и LSAPI, подняли второй экземпляр Apache на сервере хостинга на другом порту с тестовым сайтом, исключили влияние Nginx, отправляя запросы напрямую к Apache и получая те же коды ошибок.
Сдвинуться с мёртвой точки помогла документация LSAPI, как раз по диагностике 503 ошибки:
www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:503-errors
В секции Advanced Troubleshooting предлагается выполнять трассировку найденных в системе процессов:
while true; do if mypid=`ps aux | grep $USERNAME | grep lsphp | grep $SCRIPTNAME | grep -v grep | awk '{print $2; }' | tail -1`; then strace -tt -T -f -p $mypid; fi ; done
Команда была доработана, с целью записи всех процессов в файлы с указанием их идентификаторов.
При просмотре файлов трассировок, мы видим в некоторых одинаковые строки:
cat trace.* | tail
...
47307 21:33:04.137893 --- SIGHUP {si_signo=SIGHUP, si_code=SI_USER, si_pid=42053, si_uid=0} ---
47307 21:33:04.140728 +++ killed by SIGHUP +++
...
Если взглянуть на описание структуры сигналов, отправляемых процессами, то увидим, что
pid_t si_pid; /* Sending process ID */
Указывает на идентификатор процесса, отправившего сигнал.
На момент изучения трассировок, процесса с PID 42053 в системе уже нет, поэтому в процессе захвата трассировок решили отслеживать так же процессы, отправившие сигнал SIGHUP.
Под спойлером описаны действия, которые позволили определить что это за процесс, а так же получить его трассировку и дополнительную информацию, о том, каким процессам он отправляет сигнал SIGHUP.
Методика трассировки
Консоль 1.
tail -f /var/www/httpd-logs/sitename.error.log
Консоль 2.
while true; do if mypid=`ps aux | grep $USERNAME | grep lsphp | grep "sitename" | grep -v grep | awk '{print $2; }' | tail -1`; then strace -tt -T -f -p $mypid -o /tmp/strace/trace.$mypid; fi ; done
Консоль 3.
while true; do if mypid=`cat /tmp/strace/trace.* | grep si_pid | cut -d '{' -f 2 | cut -d'=' -f 4 | cut -d',' -f 1`; then ps -aux | grep $mypid; fi; done;
Консоль 4.
seq 1 10000 | xargs -i sh -c "curl -I http://sitename/"
Ждём пока в консоли 1 появятся сообщения, при этом в консоли 4 видим статус запроса с кодом ответа 503, прерываем выполнение в консоли 4.
В итоге, получили название процесса /opt/alt/python37/bin/python3.7 -sbb /usr/sbin/cagefsctl --rebuild-alt-php-ini
Данный процесс выполнялся в системе с периодичностью раз в минуту.
Делаем трассировку нескольких процессов cagefsctl, чтобы отследить хотя бы один от начала до конца:
for i in `seq 1 100`; do strace -p $(ps ax | grep cagefsctl | grep rebuild-alt-php-ini | grep -v grep | awk '{print $1}') -o /tmp/strace/cagefsctl.trace.$(date +%s); done;
Далее изучаем что он делал, например:
cat /tmp/strace/cagefsctl.trace.1593197892 | grep SIGHUP
Так же были получены идентификаторы процессов, которые были завершены сигналом SIGHUP. Завершённые процессы были процессами PHP, выполняющимися в данный момент.
Полученные данные были переданы в поддержку CloudLinux с целью уточнить легитимность данного процесса и должен ли он работать с такой периодичностью.
Позже получили ответ, что работа команды /usr/sbin/cagefsctl --rebuild-alt-php-ini
выполняется корректно, единственный нюанс в том, что команда выполняется слишком часто. Обычно вызывается при системном обновлении или изменении параметров PHP.
Единственная зацепка в данном случае осталась — проверить, кто является родительским процессом cagefsctl.
Результат не заставил себя долго ждать и какого же было наше удивление — родительским процессом для cagefsctl являлся процесс ispmgrnode. Это было немного странно, потому что уровень журналирования для ISP Manager был задан максимальным и в ispmgr.log не увидели вызов cagefsctl.
Теперь данных было достаточно, чтобы обратиться и в поддержку ISP System.
Итоги
Проблема была спровоцирована после выполнения обновления ISP Manager. В целом, обновление ISP Manager — штатная ситуация, но она привела к запуску процесса синхронизации, который завершался с ошибкой и перезапускался ежеминутно. Процесс синхронизации вызывал за собой процесс cagefsctl, который в свою очередь завершал процессы PHP.
Причиной зависания процесса синхронизации стали проведённые на хостинге работы по модернизации оборудования. За несколько месяцев до возникновения проблемы, в сервер был установлен PCI-e NVMe-накопитель, создан раздел XFS и смонтирован в каталог /var. На него были перенесены в том числе и файлы пользователей, но не обновились дисковые квоты. Опций монтирования было не достаточно, требовалось так же изменить тип файловой системы в параметрах ISP Manager, т.к. она вызывает команды обновления дисковых квот. Для Ext4 и XFS эти команды отличаются.
Таким образом, проблема дала о себе знать спустя несколько месяцев после проведения работ.
Выводы
Мы сами создали проблему, но это было не ясно до последнего момента. На будущее, будем стараться учесть как можно больше нюансов. Благодаря помощи более подготовленных коллег из поддержки CloudLinux и ISP System, проблема была решена. Теперь наш хостинг работает стабильно. А нами был получен опыт, который пригодится нам в будущей работе.
P.S.: Надеюсь, Вам было интересно ознакомиться с материалом статьи, а кому-нибудь она поможет быстрее решить подобную проблему.
Ошибка 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. Отсутствие доступа к сайту имеет негативные последствия как для посетителя, который не может просматривать нужный контент, так и для владельца веб-ресурса, рискующего потерять трафик и конверсию. Чаще всего причиной ошибки являются неправильные настройки сервера или движка, с помощью которого создан сайт (CMS). Их исправлением занимается администратор веб-ресурса. Однако иногда уведомление с кодом 503 возникает из-за сбоев на стороне пользователя. Такие неполадки легче и быстрее исправить, и сделать это может посетитель веб-ресурса самостоятельно. В данной статье мы разберем несколько способов устранения ошибки 503, которые могут предпринять администратор и пользователь сайта.
Что значит ошибка 503 Service Unavailable
Ошибка 503 Service Unavailable — это уведомление, которое отправляет сервер, чтобы сообщить о появлении технических неполадок и временной невозможности обработать запрос пользователя. Сообщение появляется на веб-странице, которую пытался открыть посетитель, если на сайте есть проблемный скрипт, на сервер поступает больше запросов, чем он может обработать, или на устройстве и сетевом оборудовании пользователя возникли проблемы с настройками.
Ошибка 503 на сайте означает, что сервер в порядке, но в данный момент недоступен. Чтобы хостинг-компьютер снова начал корректно отвечать браузеру, необходимо найти причину поломки. Это поможет выбрать правильное решение проблемы. Перечислим возможные источники «Error 503»:
- DDoS-атаки и вирусы, приводящие к перегрузке сервера;
- несогласованная работа компонентов веб-страницы (медиаконтента, стилей и скриптов) — элементы каждого уровня запрашиваются и отправляются отдельно;
- последствия хотлинка — сервер тратит трафик и другие вычислительные ресурсы на ответ посетителям других сайтов (если в чужие веб-страницы встроены файлы, хранящиеся на вашем сервере);
- непрерывное обращение к веб-серверу одного из элементов сайта — плагина, виджета, темы;
- сканирование сайта поисковыми роботами и парсерами;
- конфликты плагинов CMS;
- отключение сервера для обслуживания;
- направление большого количества тяжелых запросов к базе данных;
- наличие недостаточно оптимизированных скриптов;
- отправка объемных статичных файлов при помощи скриптов;
- работа почтового сервера — регулярная рассылка большого количества сообщений;
- подключение к удаленному серверу — может привести к лишним HTTP-запросам, тайм-аутам, обрывам связи и т. д.
Пользователю не стоит сразу отказываться от попыток восстановить работоспособность сайта и искать новый сервис. Error 503 может возникнуть из-за проблем с его компьютером, модемом, операционной системой, программным обеспечением и браузером. Если не устранить причину сбоя, ошибка будет систематически возникать и при посещении других веб-ресурсов. К тому же от него не требуется выполнения сложных действий или больших временных затрат — проверка наличия проблем на стороне пользователя займет всего несколько минут.
Как исправить ошибку 503 владельцу сайта
К ошибке HTTP 503 чаще всего приводят сбои, происходящие на сервере. Их исправление — ответственность владельца веб-сайта. Решение некоторых проблем не требует особых навыков, для других придется обратиться к вебмастеру или техническому специалисту с опытом в администрировании серверов.
Перезагрузка сервера
Так же как перезагрузка модема и маршрутизатора помогает пользователям очистить кэш DNS-серверов, в котором накопился проблемный код, и вернуть доступ к веб-ресурсу, так и перезапуск сервера необходим администраторам для избавления от некоторых ошибок и восстановления работоспособности сайта. Если вы арендуете сервер или его часть у хостинг-провайдера, для перезагрузки сервера вам потребуется войти в панель управления хостингом и выполнить несколько действий:
-
Выберете нужный заказ и откройте вкладку «Администрирование».
-
Перейдите в пункт «Управление операционной системой» и нажмите кнопку «Перезагрузить».
На перезапуск системы уйдет всего несколько минут.
Автоматическое обслуживание
Даже хорошо оптимизированный веб-ресурс не может работать 100% времени. Сервер и расположенный на нем сайт могут стать временно недоступными при выполнении некоторых видов технических работ:
- установке обновлений операционной системы и приложений;
- проверке безопасности системы и поиске вредоносных программ;
- автоматическом обновлении CMS и ее компонентов (тем, плагинов) и так далее.
График проведения мероприятий по автоматическому обслуживанию сообщается администраторам сайтов заранее. Если предупредить пользователей о возможном появлении проблем с доступом к веб-ресурсу в определенный период времени, можно сократить количество отказов от просмотра сайта при появлении ошибки 503.
Проверка настроек конфигурации брандмауэра
Неправильно настроенный брандмауэр сервера может принять несколько связанных IP-адресов за DDOS-атаку. При выставлении параметров брандмауэра ориентируйтесь на особенности выбранной CMS и характеристики вашего веб-сервера.
Обратитесь в службу технической поддержки
Если сайт недоступен и установить причину своими силами не удалось, обратитесь в службу технической поддержки хостинга. Специалист саппорта сообщит о технических работах и времени их окончания или поможет установить другой источник ошибки 503. В Интернет Хостинг Центре обратиться за помощью можно через раздел «Задать вопрос» в панели управления хостингом или через чат. При создании тикета необходимо подробно описать проблему и приложить скриншот.
Снижение нагрузки на сервер
Существует несколько способов справиться с большим количеством запросов, адресуемых серверу. Каждый из них подойдет для решения конкретной проблемы:
- Установка защитного экрана, например, CloudFlare, для защиты от хакерских атак и других угроз безопасности.
- Оптимизация и удаление лишних скриптов для быстрой обработки запросов.
- Выбор антилич-плагина, поддерживаемого вашей CMS, для защиты от хотлинка.
- Удаление компонентов, постоянно обращающихся к серверу.
- Запись в robots.txt пользовательских приложений (user agent), создающих нагрузку на сайт.
- Проверка совместимости плагинов и тем друг с другом путем их попеременного отключения и тестирования работы сайта без них.
- Обмен объемными файлами большого размера по протоколу FTP.
- Организация рассылки в период сниженной нагрузки на сервер, например, ранним утром.
- Контроль над количеством email-сообщений, отправляемых одновременно.
Как решить проблему, если вы — пользователь
Ошибка 503 происходит на сервере, и если ее обнаружил пользователь веб-ресурса, он может сообщить об этом владельцу сайта и подождать устранения проблемы. В получении контактов поможет сервис Whois, который проверяет регистрационные данные домена и содержит информацию о его арендаторе. Однако такое решение может занять большое количество времени, кроме того, не часто, но код 503 может появляться из-за ошибок на компьютере и сетевом оборудовании пользователя. Что пользователь может предпринять самостоятельно, чтобы убедиться, что он не является причиной временно отсутствия доступа к веб-ресурсу:
- Отключите от питания сетевое оборудование на три минуты. Если ошибка происходила из-за проблем с IP пользователя, после включения роутера адрес поменяется и сайт снова станет доступным.
- Перезагрузите модем. Если причина в ПО внешних устройств, передающих вам трафик, может помочь перезагрузка сетевого оборудования.
- Очистите кэш и другие временные файлы в браузере. Для этого воспользуйтесь сочетанием клавиш Ctrl+F5.
- Смените браузер или перезапустите его. Это поможет избавиться от ошибок в текущей сессии и понять, является ли браузер источником ошибки.
- Перезагрузите операционную систему. Сбой в ОС и программном обеспечении будет исправлен автоматически при новом запуске компьютера.
Заключение
Способов устранения ошибки 503 так же много, как и причин ее появления. Пока администратор сайта решает сложные технические вопросы, пользователь может проверить на причастность к сбоям собственную технику и установленное на ней ПО.
Похожие статьи
-
Пока вы ждете загрузки сайта в окне браузера, на его сервере происходит обработка запроса, в результате чего он выдает или не выдает вам нужную информацию. Часто в процессе выполнения пользовательского запроса возникают различные ошибки, и вместо страницы мы получаем сообщения вроде Error 401, 404, 504 и т. п. Это значит, что что-то пошло не так и сайт не смог выполнить запрашиваемое действие. Цифры в названии ошибки означают ее код. Он указывает на наличие определенного типа проблемы. Одной из самых распространенных является формулировка «403 Forbidden Error». В статье мы расскажем, что делать, когда появляется 403 ошибка на сайте, что это означает, почему возникает и как ее устранить.
-
Чтобы на веб-странице появился контент, браузер должен получить от сервера, на котором расположен сайт, необходимые данные. Когда на устройстве пользователя, на веб-сервере или на другом промежуточном узле (например, прокси) возникают неполадки, вместо содержимого сайта в браузере появляется страница с ошибкой. Для устранения сбоя, необходимо знать, на чьей стороне он произошел и по какой причине. Понять, что является источником проблемы, помогает цифровой код ошибки. Если он имеет формат 5xx, значит, сбой происходит на стороне сервера. Разбираем в статье ошибку 504 на сайте и способы ее устранения.
-
Посещая сайты в интернете, мы часто натыкаемся на различные ошибки при загрузке. Часть из них вызвана проблемами на стороне сервера, многие связаны с настройками пользовательского устройства, некоторые возникают из-за сбоев в работе интернет-служб. Страница «Error 1020 Access Denied» обычно открывается на веб-сайтах, которые используют сервисы компании Cloudflare (сеть доставки контента (CDN), защиты от DDoS-атак, DNS-серверы), когда та блокирует IP-адрес пользователя. Но существуют и другие причины, по которым возникает ошибка 1020 на сайте. Мы разберем ситуации, когда проблема носит локальный характер, и подскажем, как устранить эту неисправность на стороне пользователя.