Сайт localhost пока не может обработать этот запрос http error 503

Что значит ошибка сервера 503 Service Unavailable (Сервис Недоступен) и как ее исправить - пошаговая инструкция. Причины появления ошибки 503 и эффективные способы ее устранения.

Как и любая проблема с доступом к интернет-ресурсам, ошибка 503 Service Unavailable («Сервис недоступен») может быть вызвана сбоями как на стороне пользователя, так и на стороне сервера, на котором находится сайт. Поэтому первое, что нужно сделать, если вы столкнулись с таким сообщением при посещении веб-ресурса, попробовать устранить сбой своими силами. Это намного проще и быстрее, чем пытаться донести информацию о возникших сложностях до владельца сайта.

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

Мощный хостинг в подарок при заказе лицензии 1С-Битрикс

Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год мощного хостинга – специально для сайтов на 1С-Битрикс.

Заказать

Устранение ошибки 503 пользователем

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

  1. Обновите вкладку браузера. Это покажется странным, но зачастую такое простое действие приводит к положительному результату. Нажмите клавишу F5 или воспользуйтесь специальной кнопкой в меню браузера.
  2. Закройте и откройте браузер. Таким образом вы произведете сброс текущей сессии соединения и обновите его. При новом подключении скрипт браузера может не обнаружить ошибку 503, если она была воспринята им ошибочно.
  3. Стоит убедиться, что сбой не связан именно с вашим компьютером. Это особенно актуально, если ошибки соединения с веб-ресурсами повторяются регулярно и возникают с разными кодировками на других сайтах. Для этого необходимо посетить проблемную страницу с другого устройства и желательно через новое интернет-соединение.
  4. Зайдите на страницу, выдавшую ошибку 503, используя другой браузер. Вполне вероятно, что дефект возникает из-за некорректных настроек текущего. Если это подтвердится, стоит в них покопаться и найти источник возникновения проблемы. Самое простое, это восстановить настройки по умолчанию.
  5. Перезагрузка компьютера. Как и любой программный сбой на уровне операционной системы или другого программного обеспечения, он может быть исправлен автоматически при новой загрузке системы.
  6. Очистка кэша и удаление файлов cookies.  В зависимости от настроек конкретного браузера в них может сохраняться много «лишней» информации при обмене web-данными. Операция довольно несложная, но стоит предварительно посмотреть help по данному вопросу, т.к. в каждом браузере она проводится по-разному.
  7. Перезагрузка сетевого оборудования. Часто сложности при соединении с интернет-ресурсами возникают из-за некорректного поведения ПО на внешних устройствах, через которые вы получаете трафик. Это может быть роутер, раздающий интернет как по кабелю, так и через Wi-Fi. Необходимо отключить соответствующую железку по питанию, т.е. полностью обесточить ее примерно на одну минуту. Если провайдер выдает вам динамический ip-адрес, то произойдет его смена, что тоже может привести к устранению появления ошибки 503.
  8. Смена DNS-адреса на сервере. Это решение является наиболее сложным для обычного пользователя. В большинстве интернет-соединений используется общедоступный DNS-адрес Google. Изменить его можно через «Панель управления компьютера» в «Центре управления сетями и общим доступом». Данные манипуляции довольно критичны для устойчивой работы интернета на вашем компьютере. Поэтому производить их стоит только тогда, когда вы абсолютно уверены в своей IT-подготовке.

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

Ошибка 503 может отображаться в разных форматах с дополнительными информативными сообщениями. Появление страницы «503 Service Temporary Unavailable – Сервис временно недоступен» говорит о том, что проблема носит временный характер. В этом случае пользователю рекомендуется не предпринимать никаких действий и просто дождаться, когда доступ восстановится автоматически.

Ошибка 503 HTTP

Решение проблем с ошибкой 503 администратором веб-ресурса

При возникновении ошибки 503 Service Unavailable в любом ее проявлении администратор web-ресурса в первую очередь должен разобраться в причине ее появления. Игнорирование данной процедуры по принципу «само пройдет» может привести к тому, что сайт понесет глобальные потери в объеме пользовательского трафика и, как следствие, конверсии. Посетители, регулярно сталкивающиеся с проблемами доступа к определенному ресурсу, очень быстро занесут его в «игнор».

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

Наиболее частые причины возникновения ошибки 503 на стороне сервера

  1. При получении запроса от пользователя конкретная страница сайта не может установить соединение с базой данных MySQL.
  2. Некорректная работа плагинов и расширений из-за внутренних ошибок или конфликта между собой.
  3. Использование недорого хостинга и маломощного сервера приводит к тому, что оборудование не справляется с обработкой входящего трафика.
  4. Ресурсоемкие скрипты создают дополнительную нагрузку на сервер.
  5. Задействован почтовый сервис, выполняющий автоматическую рассылку сообщений в большом объеме.
  6. Соединение с удаленным сервером может привести к замедлению обработки запросов.
  7. Передача файлов большого объема при помощи PHP-скрипта.
  8. Значительное количество нерабочих модулей конкретной CMS.

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

Как избежать появления ошибок 503

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

Уменьшение нагрузки на базу данных можно добиться следующими способами:

  • Регулярное обновление CMS, которое позволяет оптимизировать работу движка, уменьшить количество багов.
  • Установка защиты от ботов и парсеров, которые часто запускаются вашими конкурентами, чтобы создать дополнительную нагрузку на ресурс и тем самым вывести его частично или полностью из строя.
  • Уменьшение размера и, если это возможно, количества графических файлов на сайте, а также «тяжелых» таблиц.
  • Ввод ограничений на количество одновременных участников в чате.

Оптимизация работы скриптов

  • Отключите все лишние плагины и дополнения, кроме тех, которые реально необходимы для бесперебойной работы сайта (кэширование, оптимизация базы данных, создание бэкапов, сжатие изображений).
  • Осуществляйте передачу файлов большого объема через FTP, т.к. использование других способов передачи данных приводит к созданию отдельного процесса.
  • Осуществляйте массовую почтовую рассылку в моменты отсутствия пиковой нагрузки на сайт, например, ночью или ранним утром.
  • При использовании удаленного сервера минимизируйте время ответа и оптимизируйте канал соединения.
  • Проверьте наличие проблемных запросов к базе MySQL в файле mysql-slow.log.

Дополнительную нагрузку на сервер, приводящую к появлению ошибки 503, могут создать DDoS-атаки. Защита от них с помощью фильтрации относится к отдельной теме обсуждения.

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

Заключение

Ошибка 503 Service Unavailable может возникнуть на любом сайте, управляемом одной из наиболее популярных CMS – WordPress (Вордпресс), Joomla (Джумла), DLE (ДЛЕ) и любой другой, использующей базы данных MySQL. Способов ее решения много, начиная от самых простых на уровне пользователя и заканчивая довольно сложными процедурами, которые должен выполнить администратор сайта.

Буду благодарен, если вы нашли нестандартный подход к устранению сбоя с кодировкой 503 и готовы поделиться своим опытом в комментариях!

Время прочтения
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: исчерпывающее руководство

Что означает ошибка 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. 1.

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

  2. 2.

    Если после нескольких перезагрузок страницы ошибка всё равно возникает, попробуйте открыть сайт через другой браузер. Если в другом браузере ошибка не воспроизводится, очистите кэш на своем браузере. Например, в Google Chrome нажмите комбинацию клавиш Ctrl+Shift+Delete:


    Очистить историю в Google Chrome

  3. 3.

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

  4. 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. 1.

    Ошибка может возникнуть из-за превышения лимита на количество PHP-процессов. Согласно техническим ограничениям, на тарифных планах Host максимальное количество процессов PHP составляет 4, на тарифных планах VIP — 32.

    Чтобы посмотреть запущенные PHP-процессы, подключитесь по SSH и выполните следующую команду:

    ps aux | grep php | grep u1234567

    Где u1234567 — ваш логин хостинга (Как узнать логин хостинга).

    Чтобы завершить текущие php-процессы, измените версию PHP на отличную от текущей. Затем включите версию PHP, которая была установлена ранее.

  2. 2.

    Максимальное количество процессов на тарифных планах Host составляет 18, а на VIP — 48. Если общее количество процессов (PHP, IMAP, Cron и др.) будет превышено, то может возникнуть ошибка «503 временно недоступен».


    Технические ограничения хостинга REG.RU

    Чаще всего причиной является большое количество процессов IMAP из-за многочисленных подключений к ящикам. В качестве решения проблемы попробуйте подключаться к почтовому серверу по протоколу POP3. Это позволит уменьшить общее количество процессов.

  3. 3.

    Максимальное количество HTTP-запросов в секунду на один домен: 75 на тарифах Host и 300 на VIP. При превышении этого лимита 503 ошибку может возвращать весь сайт или часть контента на нём. Причиной может быть большое количество запросов в секунду или контента на сайте (картинки, баннеры).

  4. 4.

    На VPS ошибка может возникнуть из-за DDoS-атаки, из-за которой увеличивается нагрузка на сервер.

Если вам не удалось решить проблему на хостинге REG.RU самостоятельно, напишите заявку в службу поддержки.

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

Что значит ошибка 503 Service Unavailable

Ошибка 503 Service Unavailable — это уведомление, которое отправляет сервер, чтобы сообщить о появлении технических неполадок и временной невозможности обработать запрос пользователя. Сообщение появляется на веб-странице, которую пытался открыть посетитель, если на сайте есть проблемный скрипт, на сервер поступает больше запросов, чем он может обработать, или на устройстве и сетевом оборудовании пользователя возникли проблемы с настройками.

Ошибка 503 Service Unavailable.

Изображение от storyset на Freepik.

Ошибка 503 на сайте означает, что сервер в порядке, но в данный момент недоступен. Чтобы хостинг-компьютер снова начал корректно отвечать браузеру, необходимо найти причину поломки. Это поможет выбрать правильное решение проблемы. Перечислим возможные источники «Error 503»:

  • DDoS-атаки и вирусы, приводящие к перегрузке сервера;
  • несогласованная работа компонентов веб-страницы (медиаконтента, стилей и скриптов) — элементы каждого уровня запрашиваются и отправляются отдельно;
  • последствия хотлинка — сервер тратит трафик и другие вычислительные ресурсы на ответ посетителям других сайтов (если в чужие веб-страницы встроены файлы, хранящиеся на вашем сервере);
  • непрерывное обращение к веб-серверу одного из элементов сайта — плагина, виджета, темы;
  • сканирование сайта поисковыми роботами и парсерами;
  • конфликты плагинов CMS;
  • отключение сервера для обслуживания;
  • направление большого количества тяжелых запросов к базе данных;
  • наличие недостаточно оптимизированных скриптов;
  • отправка объемных статичных файлов при помощи скриптов;
  • работа почтового сервера — регулярная рассылка большого количества сообщений;
  • подключение к удаленному серверу — может привести к лишним HTTP-запросам, тайм-аутам, обрывам связи и т. д.

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

Как исправить ошибку 503 владельцу сайта

К ошибке HTTP 503 чаще всего приводят сбои, происходящие на сервере. Их исправление — ответственность владельца веб-сайта. Решение некоторых проблем не требует особых навыков, для других придется обратиться к вебмастеру или техническому специалисту с опытом в администрировании серверов.

Перезагрузка сервера

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

  1. Выберете нужный заказ и откройте вкладку «Администрирование».

    Перезагрузка сервера.

  2. Перейдите в пункт «Управление операционной системой» и нажмите кнопку «Перезагрузить».

    Перезагрузка сервера в ИХЦ.

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

Автоматическое обслуживание

Даже хорошо оптимизированный веб-ресурс не может работать 100% времени. Сервер и расположенный на нем сайт могут стать временно недоступными при выполнении некоторых видов технических работ:

  • установке обновлений операционной системы и приложений;
  • проверке безопасности системы и поиске вредоносных программ;
  • автоматическом обновлении CMS и ее компонентов (тем, плагинов) и так далее.

График проведения мероприятий по автоматическому обслуживанию сообщается администраторам сайтов заранее. Если предупредить пользователей о возможном появлении проблем с доступом к веб-ресурсу в определенный период времени, можно сократить количество отказов от просмотра сайта при появлении ошибки 503.

Проверка настроек конфигурации брандмауэра

Неправильно настроенный брандмауэр сервера может принять несколько связанных IP-адресов за DDOS-атаку. При выставлении параметров брандмауэра ориентируйтесь на особенности выбранной CMS и характеристики вашего веб-сервера.

Обратитесь в службу технической поддержки

Если сайт недоступен и установить причину своими силами не удалось, обратитесь в службу технической поддержки хостинга. Специалист саппорта сообщит о технических работах и времени их окончания или поможет установить другой источник ошибки 503. В Интернет Хостинг Центре обратиться за помощью можно через раздел «Задать вопрос» в панели управления хостингом или через чат. При создании тикета необходимо подробно описать проблему и приложить скриншот.

Обратитесь в службу технической поддержки.

Снижение нагрузки на сервер

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

  1. Установка защитного экрана, например, CloudFlare, для защиты от хакерских атак и других угроз безопасности.
  2. Оптимизация и удаление лишних скриптов для быстрой обработки запросов.
  3. Выбор антилич-плагина, поддерживаемого вашей CMS, для защиты от хотлинка.
  4. Удаление компонентов, постоянно обращающихся к серверу.
  5. Запись в robots.txt пользовательских приложений (user agent), создающих нагрузку на сайт.
  6. Проверка совместимости плагинов и тем друг с другом путем их попеременного отключения и тестирования работы сайта без них.
  7. Обмен объемными файлами большого размера по протоколу FTP.
  8. Организация рассылки в период сниженной нагрузки на сервер, например, ранним утром.
  9. Контроль над количеством email-сообщений, отправляемых одновременно.

Как решить проблему, если вы — пользователь

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

  1. Отключите от питания сетевое оборудование на три минуты. Если ошибка происходила из-за проблем с IP пользователя, после включения роутера адрес поменяется и сайт снова станет доступным.
  2. Перезагрузите модем. Если причина в ПО внешних устройств, передающих вам трафик, может помочь перезагрузка сетевого оборудования.
  3. Очистите кэш и другие временные файлы в браузере. Для этого воспользуйтесь сочетанием клавиш Ctrl+F5.
  4. Смените браузер или перезапустите его. Это поможет избавиться от ошибок в текущей сессии и понять, является ли браузер источником ошибки.
  5. Перезагрузите операционную систему. Сбой в ОС и программном обеспечении будет исправлен автоматически при новом запуске компьютера.

Заключение

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

Похожие статьи

  • Пока вы ждете загрузки сайта в окне браузера, на его сервере происходит обработка запроса, в результате чего он выдает или не выдает вам нужную информацию. Часто в процессе выполнения пользовательского запроса возникают различные ошибки, и вместо страницы мы получаем сообщения вроде Error 401, 404, 504 и т. п. Это значит, что что-то пошло не так и сайт не смог выполнить запрашиваемое действие. Цифры в названии ошибки означают ее код. Он указывает на наличие определенного типа проблемы. Одной из самых распространенных является формулировка «403 Forbidden Error». В статье мы расскажем, что делать, когда появляется 403 ошибка на сайте, что это означает, почему возникает и как ее устранить.

  • Чтобы на веб-странице появился контент, браузер должен получить от сервера, на котором расположен сайт, необходимые данные. Когда на устройстве пользователя, на веб-сервере или на другом промежуточном узле (например, прокси) возникают неполадки, вместо содержимого сайта в браузере появляется страница с ошибкой. Для устранения сбоя, необходимо знать, на чьей стороне он произошел и по какой причине. Понять, что является источником проблемы, помогает цифровой код ошибки. Если он имеет формат 5xx, значит, сбой происходит на стороне сервера. Разбираем в статье ошибку 504 на сайте и способы ее устранения.

  • Посещая сайты в интернете, мы часто натыкаемся на различные ошибки при загрузке. Часть из них вызвана проблемами на стороне сервера, многие связаны с настройками пользовательского устройства, некоторые возникают из-за сбоев в работе интернет-служб. Страница «Error 1020 Access Denied» обычно открывается на веб-сайтах, которые используют сервисы компании Cloudflare (сеть доставки контента (CDN), защиты от DDoS-атак, DNS-серверы), когда та блокирует IP-адрес пользователя. Но существуют и другие причины, по которым возникает ошибка 1020 на сайте. Мы разберем ситуации, когда проблема носит локальный характер, и подскажем, как устранить эту неисправность на стороне пользователя.

Обновлено 03.07.2020

HTTP Error 503

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами научились чинить две вещи в Windows 10, это пресловутый черный экран и ошибку запуска в приложениях из-за отсутствия библиотеки vcruntime140.dll. Двигаемся дальше и сегодня решим еще один интересный пазл с веб сервисом IIS и ошибкой «HTTP Error 503. The service is unavailable«. Думаю, что мои грабли будут вам весьма интересны.

Описание ошибки 503 на IIS

Не так давно я устанавливал отказоустойчивую службу Remote Desktop Services High Availability на базе Windows Server 2019. Сами роли установились корректно и без ошибок в мастере, я успешно создал коллекцию, опубликовал RemoteApp приложения и хотел их протестировать, но какого же было мое удивление, когда я в место привычной формы авторизации увидел ошибку:

Service Unavailable: HTTP Error 503. The service is unavailable.

Service Unavailable: HTTP Error 503. The service is unavailable

Причины ошибки HTTP Error 503. The service is unavailable

Сразу могу сказать, что данную проблему вы можете встретить в любом продукте компании Microsoft, где в качестве веб движка используется служба IIS (Internet Information Services). Из популярных:

  • RDS фермы
  • Share Point
  • Exchange
  • Просто сайты на IIS

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

Методы устранения ошибки 503 на IIS

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

  • Отсутствие прав у учетной записи, которая запускает пул приложений
  • Вы запускаете пул в режиме 32 бита
  • У вас просто не работает пул приложений
  • Проблема с NET.Framework
  • Проблема на уровне операционной системы из-за ошибок целостности

Переустановка системы

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

Не знаю, в чем было дело, то ли глюки при обновлении Windows Server 2019, то ли что-то со сборкой которая у меня была, не могу точно сказать. До переустановки у меня была версия Windows 1809 (Сборка ОС 17763.1282)

Определение версии на сервере с ошибкой Service Unavailable: HTTP Error 503. The service is unavailable

После переустановки я поставил версию от июня 2020. Когда я уже в ней запускал сайт RDweb на ферме RDS, то сервис ответил корректно и HTTP Error 503 я не увидел.

Так, что если у вас только, что установленная Windows Server 2019, то попробуйте ее снести и установить заново, это может быть куда быстрее чем заниматься траблшутингом, самое ценное это ваше время, лучше уж провести его полезнее.

Проверка работы NET.Framework

По умолчанию в Windows Server 2019 при установке добавляется NET.Framework версии 4.7. Очень часто он может быть добавлен кривовато. В случае с Remote Desktop Services мне пришлось:

  • Удалить роль IIS и RDS
  • Удалить компонент NET.Framework
  • Скачать NET.Framework версии 4.7. Скачиваем потому, что после его удаления у вас не будет работать диспетчер серверов и установка из PowerShell.
  • Установить NET.Framework версии 4.7
  • Устанавливаете IIS
  • Устанавливаете RDS

В результате данного шаманства в сможете запустить RDweb на вашей RDS ферме минуя ошибку «Service Unavailable: HTTP Error 503. The service is unavailable».

Но перед всеми этими рокировками я вам советую, как и в случае с зависанием пула IIS обратиться к логам и попытаться там найти, что-то что даст нам направление для поиска информации. Напоминаю посмотреть логи Windows вы можете через оснастку «Просмотр событий» или веб-сервис Windows Admin Center. Советую смотреть четыре журнала. Первые два стандартные, это «Система» и «Приложения». Например вы можете увидеть вот такое событие с предупреждением:

Код ID 1309

Код ID 1309: Event code: 3005
Event message: Возникло необработанное исключение.
Event time: 30.06.2020 18:34:41
Event time (UTC): 30.06.2020 15:34:41
Event ID: aa3cbb1255f3432d813e6c5cb75395ed
Event sequence: 14
Event occurrence: 1
Event detail code: 0

Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/Pages-2-132380048755425068
Trust level: Full
Application Virtual Path: /RDWeb/Pages
Application Path: C:WindowsWebRDWebPages
Machine name: RDSH03

Process information:
Process ID: 3416
Process name: w3wp.exe
Account name: IIS APPPOOLRDWebAccess

Exception information:
Exception type: NullReferenceException
Exception message: Ссылка на объект не указывает на экземпляр объекта.
в Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormAuthTicketInfo..ctor(HttpContext objHttpContext)
в ASP.ru_ru_default_aspx.<GetAppsAsync>d__0.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.PageAsyncTaskManager.<ExecuteTasksAsync>d__3.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.Page.<ProcessRequestAsync>d__554.MoveNext()

Request information:
Request URL: https://rdsh03.root.pyatilistnik.org:443/RDWeb/Pages/ru-RU/Default.aspx
Request path: /RDWeb/Pages/ru-RU/Default.aspx
User host address: 192.168.31.100
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOLRDWebAccess

Thread information:
Thread ID: 7
Thread account name: IIS APPPOOLRDWebAccess
Is impersonating: False
Stack trace: в Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormAuthTicketInfo..ctor(HttpContext objHttpContext)
в ASP.ru_ru_default_aspx.<GetAppsAsync>d__0.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.PageAsyncTaskManager.<ExecuteTasksAsync>d__3.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.Page.<ProcessRequestAsync>d__554.MoveNext()
Custom event details:

Из которого понятно, что у меня не запущен пул. Откройте оснастку IIS и перейдите в раздел «Пулы приложений». Далее найдите нужный, в моем примере это RDWebAccess. Как видно у него статус «Остановлено», попробуйте его запустить.

Запуск пула в IIS при ошибке 503

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

  • Microsoft-Windows-IIS-Configuration/Administrative
  • Microsoft-Windows-IIS-Configuration/Operational

Журналы, где можно искать события по ошибке Service Unavailable: HTTP Error 503. The service is unavailable

Так же что-то полезное вы можете найти в текстовом файле располагающемся по пути:

C:WindowsSystem32LogFilesHTTPERR

Как видно из файла у меня был выключен пул «2020-07-01 08:34:12 ::1%0 62570 ::1%0 443 HTTP/2 GET /RDWeb 5 503 1 Disabled RDWebAccess». У вас может быть тут другая ошибка.

C:WindowsSystem32LogFilesHTTPERR

Вы можете выполнить в PowerShell вот такой запрос по получению информации из данного файла, только для 503 кода.

Get-ChildItem -Path ‘C:windowssystem32LogFilesHTTPERR’ -Include *.log -Recurse | Where-Object LastWriteTime -gt (Get-Date).AddDays(-7) | Select-String -SimpleMatch ‘ 503 ‘

Получение информации из HTTPERR’ по ошибке 503

Отключение 32 битного режима на пуле IIS

В журнале Microsoft-Windows-IIS-W3SVC-WP вы можете увидеть ошибку с кодом события: 2282, где:

Не удалось загрузить модуль DLL из-за ошибки в конфигурации. Текущая конфигурация поддерживает только загрузку образов для x86 архитектуру процессора. Поле данных содержит номер ошибки.

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

Откройте дополнительные параметры у нужного пула, через контекстное меню.

Отключение 32 битного режима у пула IIS

Еще раз проверьте что параметр Enable32bitAppOnWin64 (Разрешить 32-разрядные приложения) имеет значение «False».

Проверка пула IIS на параметр Enable32bitAppOnWin64

Подробнее об этом вот тут — https://support.microsoft.com/ru-ru/help/2619402/error-503-service-unavailable-when-you-browse-windows-sbs-websites

Проверка учетной записи от которой запускается пул

Я очень часто встречал безалаберных системных администраторов, которым было лень создавать отдельные учетные записи для каждой службы или сервиса с которой они работают. Они делали просто, запускали все из под себя с максимальными правами или для теста так делали и забывали, что так оставили. Потом с течением времени учетную запись могут отключить или сменить пароль, что сразу делает ваш пул неработоспособным, он просто не может запустить его. Исходя из этого проверьте данную ситуацию. В дополнительных параметрах найдите раздел «Удостоверение» и посмотрите от имени кого у вас запущен ваш пул, по умолчанию должна быть встроенная учетная запись «ApplicationPoolidentity».

Проверка учетной записи от которой запускается пул

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

Выбор учетной записи от имени которой запускается пул IIS

Отключение Load User Profile на пуле IIS

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

Службы и приложения, которые вызывают LoadUserProfile, должны проверить, есть ли у пользователя временный профиль. Если пользователь имеет перемещаемый профиль, указать путь к нему в качестве lpProfilePath члена PROFILEINFO.

Для IIS этот параметр указывает, должна ли служба загружать профиль пользователя для удостоверения пула приложений. Если значение этого параметра «True», то служба IIS загружает профиль пользователя для удостоверения пула приложений. Если необходимо поведение  IIS 6.0 без загрузки профиля пользователя для удостоверения пула приложений задайте значение «False«. Так, что если получаете «HTTP Error 503. The service is unavailable» и ничего не помогает, то пробуем его отключить.

Отключение Load User Profile на пуле IIS

Не создает временный файл конфигурации пула

Ошибку «Service Unavailable: HTTP Error 503. The service is unavailable» вы легко можете ловить из-за того, что ваш пул по какой-то причине не может создать временный файл конфигурации и об этом может свидетельствовать предупреждение в логах:

Службе активации процессов Windows не удалось создать файл конфигурации пула приложений для пула приложений < DefaultAppPool >. Тип ошибки: «5». Чтобы решить эту проблему, убедитесь, что файл applicationhost.config указан правильно, и повторите последние изменения конфигурации. Поле данных содержит номер ошибки.

Подробнее об этом на — https://support.microsoft.com/en-in/help/4050891/error-http-503-and-was-event-5189-from-web-applications-on-windows-10

Все происходит по причине того, что служба активации Windows (WAS) создает временный файл конфигурации для каждого пула приложений IIS в папке C:inetpubtempappPools во время обычной работы.

На начальном этапе обновления «Центр обновления Windows» сканирует существующие папки и файлы и записывает их пути для восстановления после обновления. Однако, поскольку файлы конфигурации являются временными, они удаляются при остановке WAS.

На следующем этапе Центра обновления Windows эти ранее отсканированные файлы и папки копируются во временную папку обновления. После обновления Windows «Центр обновления Windows» создает символическую ссылку на каждую папку, которая была скопирована во временное местоположение обновления, прежде чем он пытается восстановить эти файлы и папки в их исходное местоположение.

Однако поскольку эти временные файлы конфигурации больше не существуют, Центр обновления Windows не удаляет символические ссылки.

Когда WAS пытается запустить как рабочий процесс IIS, он не создает временную папку для записи конфигурации из-за символических ссылок. Поэтому Http.Sys возвращает ошибку HTTP 503.

Чтобы решить эту проблему, вручную удалите символические ссылки, созданные «Центром обновления Windows». Для этого выполните следующие действия:

  • Из командной строки от имени администратора

net stop WAS /y
rmdir /s /q C:inetpubtempappPools
net start W3SVC

  • Из оболочки PowerShell в режиме администратора

Stop-Service -Force WAS
Remove-Item -Recurse -Force C:inetpubtempappPools*
Start-Service W3SVC

Удаление временных файлов конфигурации пула в IIS

Два сайта на 443 порту

Был интересный случай в прошлом, мне нужно было перенести один сайт с IIS на другой сервер. После переноса вместо сайта я видел уже вам известную ошибку «Service Unavailable: HTTP Error 503. The service is unavailable». Самое интересное, что ошибка была только для HTTPS, в то время как HTTP работал нормально. Напоминаю, что по умолчанию https использует порт 443, зная это я решил посмотреть, что слушает порт, можно было конечно воспользоваться утилитами netstat или TCPView, но я пошел в тот момент через PowerShell. Введите команду, чтобы посмотреть, что порт слушается.

Get-NetTCPConnection -LocalPort 443 -State Listen

Как видно сервер слушается.

Проверка порта 443 на доступность через PowerShell

Если вы когда-нибудь столкнетесь с такой проблемой как 503 ответ, то попробуйте остановить службу веб-публикации

Stop-Service -Name w3svc -PassThru

И после этого опять запустить команду на прослушивание, если и в этом случае вы видите, что 443 порт ответил, то поздравляю у вас есть другой сервис мешающий IIS.

Остановка службы IIS

Если это сервер, который вы унаследовали, может быть нелегко определить, что прослушивает этот конкретный порт. Я установлю модуль PowerShell с именем Carbon (https://www.powershellgallery.com/packages/Carbon/) из галереи PowerShell, чтобы определить, что происходит.

Install-Module -Name Carbon -Force -AllowClobber

Когда веб-сервер не-IIS установлен в Windows, он устанавливает ACL для порта, который будет прослушивать. Вы можете увидеть ACL, который ссылается на порт 443.

То же самое через cmd — netsh http show urlacl

На самом деле, есть две записи для порта 443. Тот, у кого GUID все в порядке, так как он предназначен только для конкретного приложения через заголовок узла, а не по всему пространству имен.

Get-HttpUrlAcl

Второе я вычислил через TCPView, это было приложение Dell EqualLogic SAN Headquarters, установленное на этом конкретном сервере, оно вызывало проблему, поэтому я решил удалить его, так как оно больше не нужно.

Dell EqualLogic SAN Headquarters

Хоть я и удалил Dell EqualLogic SAN Headquarters с сервера, это не удалило ACL, назначенный порту 443.

Удаление ACL веб-сервера

Поскольку деинсталляция приложения не решила проблему, я решил принудительно удалить ACL

Revoke-HttpUrlPermission -Url https://+443/ -Principal ‘NT AUTHORITYSYSTEM’

То же самое через cmd — netsh http delete urlacl url = [вставить URL]

После удаления этой записи и перезапуска веб-службы проблемы с прослушиванием IIS через порт 443 были решены.

Кстати можно в логах посмотреть кто установил ACL, но там не всегда все подробно. Выполните:

Get-WinEvent -FilterHashtable @{LogName=’System’;ProviderName=’Microsoft-Windows-HttpEvent’;Level=4} -MaxEvents 1 | Select-Object -Property Message

Запись в просмотре событий кто добавил ACL веб-сервера

Дополнительные методы

  1. Перезагрузить сайт, через клавиши CTRL+F5
  2. Перезагрузите модем или компьютер
  3. Очистить кеш браузера
  4. Проверьте настройки прокси
  5. Если ошибку получаете в каком-то сервисе на телефоне, то попробуйте обновить приложение
  6. Проверка диска C: на ошибки

Понравилась статья? Поделить с друзьями:
  • Сайт localhost пока не может обработать этот запрос http error 500 mamp
  • Сайт localhost пока не может обработать этот запрос http error 500 exchange
  • Сайт lkip2 nalog ru пока не может обработать этот запрос http error 500
  • Сайт bit ly не позволяет установить соединение как исправить
  • Сайт animego org пока не может обработать этот запрос http error 500