Как и любая проблема с доступом к интернет-ресурсам, ошибка 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 и готовы поделиться своим опытом в комментариях!
Время прочтения
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.: Надеюсь, Вам было интересно ознакомиться с материалом статьи, а кому-нибудь она поможет быстрее решить подобную проблему.
Errors happen – there’s some unexpected maintenance, a bug that went unnoticed, or a page goes viral and the flood of connections take the server down.
If you’ve been online for any amount of time, no doubt you’ve seen the somewhat vague 503 Service Unavailable error.
In this article we’ll go over HTTP status codes, what the 503 error means, and some possible ways to solve it – both for a site you’re trying to visit and for your own site.
An overview of HTTP status codes
Servers that host web pages listen for requests from web browsers or devices, also known as clients. The server then uses a bunch of different status codes to communicate back.
These status codes are organized into different classes, which is indicated by the first number of the status code:
- 1xx: Information – the server is still processing the request
- 2xx: Success – the request succeeded and the server responds with the page or resource
- 3xx: Redirection – the page or resource has moved and server will respond with its new location
- 4xx: Client error – there is an error in the request from the browser or device
- 5xx: Server error – there is an error with the server
The last two digits of each HTTP status code represent a more specific status for each class. For example, 301 means that a page or resource has moved permanently, while 302 means the move is temporary.
Check out this page for a list of common HTTP status codes and their meaning: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
Most status codes go by totally unnoticed, which is fine because it means everything is working. It’s only when you get to the 4xx-5xx range that you might notice a status code because you’ll see a page like this:
Now that you have a basic understanding of HTTP status codes, let’s dig a bit deeper into the 503 Service Unavailable error.
What does the 503 error code mean?
As mentioned above, 5xx status codes mean there’s a problem with the server itself.
A 503 Service Unavailable error means that the page or resource is unavailable. There are many reasons why a server might return a 503 error, but some common reasons are maintenance, a bug in the server’s code, or a sudden spike in traffic that causes the server to become overwhelmed.
The message that’s sent with the 503 error can vary depending on server it’s coming from, but here are some of the common ones you’ll see:
— 503 Service Unavailable
— 503 Service Temporarily Unavailable
— HTTP Server Error 503
— HTTP Error 503
— Error 503 Service Unavailable
— The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.Source
Whatever the reason for the 503 error, it’s usually temporary – the server will restart, traffic will die down, and the issue will resolve itself.
How to solve the 503 Status Unavailable error
When trying to solve a 503 error, there are two general camps.
The first is where you’re an end user, and you’re trying to visit a site that you don’t own. In the second, you own the site, and it’s throwing 503 errors to people who are trying to visit.
The method to solve 503 errors is different depending on which group you fall into. Let’s take a look at some things you can do as an end user if you see a 503 error.
How to solve a 503 Status Unavailable error as an end user
Since 5xx status codes mean that the error is on the server-side, there isn’t a lot you can do directly.
Even though 503 errors are usually temporary, there are some things you can do while you wait.
#1: Refresh the page
Sometimes the error is so temporary that a simple refresh is all it takes. With the page open, just press Ctrl — R on Windows and Linux, or Cmd — R on macOS to refresh the page.
#2: See if the page is down for other people
The next thing you can do is use a service like Is It Down Right Now? or Down For Everyone Or Just Me to see if other people are getting the same error.
Just go to either of those sites and enter in the URL for the page you’re trying to visit.
The service will ping the URL you entered to see if it gets a response. Then it’ll show you some cool stats and graphs about the page:
If you scroll down a bit you’ll see some comments from other people. Often people will give their general location and other data, so this can be a good way to determine if the error is just affecting certain regions or specific devices.
#3: Restart your router
Sometimes the issue has to do with a DNS server failure.
DNS stands for Domain Name System, and they basically act as translators between IP addresses and human readable URLs.
For example, you can visit Google by entering its long IP address directly (172.217.25.206), or you can just enter in the URL, www.google.com.
It’s a DNS, often hosted on a server, that handles all that behind the scenes.
All of that is to say, many routers cache responses from DNS servers (www.google.com <==> 172.217.25.206). But sometimes this cache can get corrupted and cause errors.
An easy way to reset or «flush» the cache is to restart your router. Just unplug your router for about 5 seconds, then plug it back in again.
It should restart after a minute and all of your devices should reconnect automatically. Once they do, try visiting the site again.
How to solve a 503 Status Unavailable error as the site’s owner
If you are the owner/developer of the site that’s returning 503 errors, there’s a bit more you can do to diagnose and resolve the issue.
Here are some general tips to get you started:
#1: Restart the server
Development is tough – even a simple static page can have so many moving parts that it can be difficult to pin down what’s causing the 503 error.
Sometimes the best thing to do is to restart the server and see if that fixes the issue.
The exact method of restarting your server can vary, but usually you can access it from your provider’s dashboard or by SSH’ing into the server and running a restart command.
The server should restart after a couple of minutes. If you’ve configured everything to run automatically on boot, you can visit your site and see if it’s working.
#2: Check the server logs
The next thing to do is check the logs.
The location of the server logs can vary depending on what service you’re running, but they’re often found in /var/log/...
.
Take a look around that directory and see if you can find anything. If not, check the manual for your programs by running man program_name
.
#3: Check if there’s ongoing automated maintenance
Some service providers offer automated package updates and maintenance. Normally this is a good thing – they usually occur during downtime, and help make sure everything is up-to-date.
Occasionally 503 errors are due to these scheduled maintenance sessions.
For example, some hosting providers that specialize in WordPress hosting automatically update WP whenever there’s a new release. WordPress automatically returns a 503 Service Unavailable error whenever it’s being updated.
Check with your service providers to see if the 503 error is being caused by scheduled maintenance.
#4: Check your server’s firewall settings
Sometimes 503 Service Unavailable errors are cause by a misconfigured firewall where connections can get through, but fail to get back out to the client.
Your firewall might also need special settings for a CDN, where multiple connections from a small handful of IP addresses might be misinterpreted as a DDoS attack.
The exact method of adjusting your firewall’s settings depends on a lot of factors. Take a look at your pipeline and your service provider’s dashboards to see where you can configure the firewall.
#5: Check the code
Bugs, like errors, happen. Try as you might, it’s impossible to catch them all. Occasionally one might slip through and cause a 503 error.
If you’ve tried everything else and your site is still showing a 503 Service Unavailable error, the cause might be somewhere in the code.
Check any server-side code, and pay special attention to anything having to do with regular expressions – a small regex bug is what caused a huge spike in CPU usage, rolling outages, and about three days of panic for us at freeCodeCamp.
Hopefully you’ll be able to track down the culprit, deploy a fix, and everything will be back to normal.
In summary
That should be everything you need to know about 503 Service Unavailable errors. While there’s usually not much you can do when you see a 503 error, hopefully some of these steps will help the next time you encounter one.
Stay safe, and happy refreshing-until-it-works
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
Imagine someone searches for a topic and finds your website on page one of Google. When they click through to your website, though, their eyes land on a bland webpage that says «Service Unavailable».
What do you think they’ll do when they find your website on Google again? Odds are, they’ll skip over it and click on the next link. If visitors are looking for answers and you’re promising them those answers, but you can’t deliver because something’s wrong with your website, they’ll lose trust in your brand.
Unfortunately, if your website experiences a 503 Service Unavailable Error, there’s no silver bullet solution. You have to investigate what’s actually causing the issue, because even though these types of errors indicate what happened to your website, they don’t tell you why it happened.
To help you fix your 503 Service Unavailable Error and avoid losing potential customers, check out our guide on what exactly the issue is and its most common solutions.
A 503 Service Unavailable Error is an HTTP response status code that indicates your web server operates properly, but it can’t handle a request at the moment. Since it’s just a generic error message, it’s difficult to pinpoint the issue’s exact cause.
When your website is experiencing a 503 Service Unavailable Error, your site’s visitors will land on an error page. Fortunately, Airbrake recommends five common solutions for troubleshooting most 503 Service Unavailable Errors.
How to Fix an HTTP Error 503
- Reboot your server.
- Check to see if your web server is going through maintenance.
- Fix faulty firewall configurations.
- Sift through your server-side logs.
- Comb through your website’s code to find bugs.
1. Restart your server.
Sometimes, there will be congestion in the server chain that hosts your website. One of the most effective ways to open up and refresh it is to simply restart your web server. If your website is hosted on multiple servers, make sure you restart all of them to get it running again.
2. Check to see if your web server is going through maintenance.
Most web servers shut down when they’re going through maintenance. If you can access your server’s administration settings, check the configuration options to see when automatic maintenance sessions are scheduled. If you’d rather have complete control over your server’s maintenance, you can disable these automatic updates in the configuration options, too.
3. Fix faulty firewall configurations.
Your firewall is your website’s gatekeeper, protecting your site from malicious visitors or distributed denial-of-service (DDoS) attacks. Sometimes, a faulty firewall configuration will cause your firewall to deem requests from a content delivery network as an attack on your server and reject them, resulting in a 503 Service Unavailable Error. Check your firewall configuration to pinpoint and fix the issue.
4. Sift through your server-side logs.
There are two types of server-side logs — applications logs and server logs. Application logs recount your website’s entire history, letting you see the web pages requested by visitors and the servers it connected to. Server logs provide information about the hardware running your server, revealing details about its health and status. Sift through both types of server-side logs to uncover any alarming information about your server or website.
5. Comb through your website’s code to find bugs.
If there’s a mistake in your website’s code, your web server might not be able to correctly answer requests from a content delivery network. Comb through your code to find bugs or copy your code into a development machine. It’ll perform a thorough debug process that will simulate the exact situation your 503 Service Unavailable Error occurred in and allow you to find the exact moment things went wrong.
Any time there’s an error on your site, it’s important to fix it as soon as you can. If customers get errors, they probably won’t come back to your page.
Editor’s note: This post was originally published in January 2019 and has been updated for comprehensiveness.
Ошибка 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 ошибка чаще всего появляется на стороне вебмастера. Среди самых частых сценариев можно назвать некорректные параметры на уровне сайта или внутри самого хостинга. Проверяйте их в первую очередь, и лишь потом разбирайте второстепенные варианты, описанные нами выше.
The 503 Service Unavailable error is an HTTP status code that means a website’s server is not available right now. Most of the time, it occurs because the server is too busy or maintenance is being performed on it.
A 503 error message can be customized by the website it appears on or the server software that generates it, so how you might see it vary greatly.
How to Fix the 503 Service Unavailable Error
Since the 503 Service Unavailable error is a server-side error, the problem is usually with the website’s server. Your computer may have an issue causing the 503 error, but it’s not likely.
Regardless, there are a few things you can try:
-
Retry the URL from the address bar again by selecting Reload or Refresh, the F5 key, or the Ctrl+R keyboard shortcut.
Even though the 503 Service Unavailable error means there’s an error on another computer, the issue is probably only temporary. Sometimes just trying the page again will work.
If the 503 Service Unavailable error message appears while paying for an online purchase, be aware that multiple attempts to check out may end up creating multiple orders and multiple charges. Most payment systems and some credit card companies have protections from this kind of thing, but it’s still something you should know.
-
Restart your router and modem. Then restart your computer or device, especially if you see the Service Unavailable — DNS Failure error.
While the 503 error is still most likely the fault of the website you’re visiting, there may be an issue with the DNS server configurations on your router or computer, which a simple restart of both might correct.
-
Another option is to contact the website directly for help. There’s a good chance that the site’s administrators already know about the 503 error, but letting them know, or checking the status on the problem, isn’t a bad idea.
Most sites have support-based social network accounts, and some even have phone numbers and email addresses.
If the website giving the 503 error is a popular one, and you think it might be down completely, check if the website is down by plugging its URL into a service like Freshping’s Is it down tool. A smart Twitter search can usually give you the answer, too. Try searching for #websitedown on Twitter, replacing website with the site name, as in #facebookdown or #youtubedown. An outage on a prominent site will usually generate lots of talk on Twitter.
-
Come back later. Since the 503 Service Unavailable error is a common error message on trendy websites when a massive increase in traffic by visitors is overwhelming the servers, simply waiting it out is often your best bet. Frankly, this is the most likely «fix» for a 503 error. As more and more visitors leave the website, the chances of a successful page load for you increase.
Fixing 503 Errors on Your Own Site
With so many different web server options out there and even more general reasons why your service might be unavailable, there isn’t a straightforward «thing to go do» if your site is giving your users a 503.
That said, there are certainly some places to start looking for a problem and then hopefully a solution.
Start by taking the message literally—has something crashed? Restart running processes and see if that helps.
Beyond that, look at not-so-obvious places where something might have hiccuped. Where applicable, look at connection limits, bandwidth throttling, overall system resources, fail-safes that might have triggered, etc.
In what’s very likely a «double-edged sword» for your website, it may be that it’s suddenly very, very popular. Getting more traffic than you built your site to handle almost always triggers a 503.
However, the 503 error could also result from a malicious denial of service (DoS) attack. If so, getting into contact with the company hosting your website would be wise to discuss steps that you can take to reduce the likelihood of it happening again or to better prepare for another in the future.
Even an unintentional DoS attack can occur, where a virus on the server is sucking away usable system resources and slowing the server down to the point that it causes a 503 error.
Most Common Ways You Might See the 503 Error
503 Service Unavailable errors can appear in any browser in any operating system, including Windows 10 back through Windows XP, macOS, Linux, etc…even your smartphone or other nontraditional computers. If it has internet access, you could see a 503 in certain situations.
Here are the most common ways you might see the «service unavailable» error:
- 503 Service Unavailable
- 503 Service Temporarily Unavailable
- Http/1.1 Service Unavailable
- HTTP Server Error 503
- Service Unavailable — DNS Failure
- 503 Error
- HTTP 503
- HTTP Error 503
- Error 503 Service Unavailable
- Error 503 Backend fetch failed
The 503 Service Unavailable error displays inside the browser window, just as web pages do.
Sites that use Microsoft IIS may provide more specific information about the cause of a 503 Service Unavailable error by suffixing a number after the 503, as in HTTP Error 503.2 — Service Unavailable, which means Concurrent request limit exceeded. See More Ways You Might See a 503 Error near the bottom of the page for the whole list.
More Ways You Might See a 503 Error
In Windows applications that inherently access the internet, a 503 error might return with the HTTP_STATUS_SERVICE_UNAVAIL error, and maybe also with a The service is temporarily overloaded message.
Windows Update might also report an HTTP 503 error, but it will display as error code 0x80244022 or with a WU_E_PT_HTTP_STATUS_SERVICE_UNAVAIL message.
Some less common messages include 503 Over Quota and Connection Failed (503), but the troubleshooting above applies all the same.
If the website that reports the 503 error happens to be running Microsoft’s IIS web server software, you might get a more specific error message like one of these:
IIS 503 Errors | |
---|---|
Status Code | Reason Phrase |
503.0 | Application pool unavailable |
503.2 | Concurrent request limit exceeded |
503.3 | ASP.NET queue full |
503.4 | FastCGI queue full |
Errors Like 503 Service Unavailable
The 503 Service Unavailable error is a server-side error. It’s very much related to other server-side errors like the 500 Internal Server Error, the 502 Bad Gateway error, and the 504 Gateway Timeout error, among others.
Several client-side HTTP status codes exist, too, like the standard 404 Not Found error, among others.
FAQ
-
When is a 503 Error likely to appear?
You can encounter a 503 error pretty much any time you’re visiting a website or using an online service. It’s sometimes possible to anticipate these errors, such as when a small website suddenly receives an unexpected surge in attention it wasn’t built for. However, more often than not it comes down to timing and bad luck whether or not you’ll encounter one.
-
Can a 503 Error appear with any other messages?
Yes. It can also appear as Varnish Cache Server: Error 503 Service Unavailable or Error 503: Backend Unhealthy or error when calling aws apis. error details — serializationerror: 503 service unavailable. Regardless of how the message appears, the main terms to look out for are 503 and Error.
-
What should I do if I get a 503 Error when I open Safari on my Mac?
This probably means that whatever website you’ve set as Safari’s home page default is experiencing trouble. Aside from waiting a bit and trying again, or restarting Safari or your Mac, you can also change Safari’s home page to a different URL.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
The “503 Service Unavailable” status code indicates that the server you are trying to access is temporarily down due to overloading or server maintenance issues.
By overloading (normally) means your website is getting much traffic than the server capacity. This is explained in the section below.
In this tutorial, I will explain http 503 status code from three perspectives.
- The first is from visitors point if you are trying to visit a website and face 503 error.
- The second is from the web master/owner perspective; the error occurs at server side and how you may fix this.
- The third point is regarding 503 error and its SEO consequences. What if your website is down due to 503 error and how search engines take that?
So, if you are just learning what is 503 error code in general then keep on reading the entire article. Otherwise, you may jump directly to the section that relates to your situation.
How 503 error is visible?
As 503 error can be customized by website designer or developer, you may experience different type of messages as seeing 503 error. A few commonly visible 503 status messages are:
503 Service Unavailable
503 Error
HTTP 503
503 Service Temporarily Unavailable
And so on.
I am website owner – why this error is occurring?
As a website owner, webmaster, or a person dealing with the on-going operations of your website, this should be highly concerning that why your website is/was down due to 503 error.
As mentioned earlier, two common reasons of HTTP 503 error status are:
- Maintenance of the server
- Overloading
If this is due to maintenance, many chances are that you are aware of the downtime. May be, your hosting company sent an email notifying about the server upgrade, replacement of old hardware by a new one, installation of a security patch or some other reason.
Similarly, you might ask hosting company to add/replace something in the server and meanwhile your website is down and showing 503 error code to your visitors.
However, if none of the case above and still you are seeing the website is down and showing error 503 then the next thing you should lookup is “overloading” issue.
The overloading can be caused by more traffic than the server capacity. For example, if you are using a shared hosting plan and your initial web traffic was around one thousand visitors per month then your current hosting plan might be good enough to deal with that.
With the passage of time, as you kept on adding new content or your website got some good links and Google, Bing or other engines started ranking you better then you may experience the influx in traffic regularly.
The same traffic increase could also be due to social factor; your website/products/services got shared by visitors on different social networks like Facebook, Twitter etc. and that caused an increase in traffic.
Similarly, if you are on a VPS or dedicated server and was getting about 10K traffic per day. Suddenly, traffic increased to 20Ks and website started showing 503 error then consider the fixes below.
So what to do if a situation is like this?
You are seeing an increase in traffic and server is started getting down with “503 service unavailable”? In that case, I will suggest performing proper analysis before taking any decisions – especially if you are concerned about hosting cost.
Traffic Analysis
If you are using an analytics service like Google Analytics then it tells you how many visitors are from which sources. A screenshot is shown below from Google Analytics:
You may access this report under the:
Acquisition –> All Traffic –> Source/Medium
This reports tells you the source of traffic. This can really help in deicding which steps to take to avoid website down by 503 error due to overloading. Consider two scenarios below:
Scenario 1 – Traffic increase by Google
As said earlier, if traffic increase is due to adding content over the period of time or for some other reason Google started ranking you better then this should be an on-going thing.
The traffic may be consistent over the period of Weeks or months and again Google Analytics is your friend there to see traffic pattern.
If that is the case that traffic increase is consistent and not seasonal (for a day, or Week or so) and you are seeing website down due to 503 then this is the time to think increasing the resources of your server.
Let’s say, if you are on the shared hosting with 256MB RAM and 1Core CPU then consider increasing this to 512 MB and one more core. You may also consider moving to VPS (Virtual Private Server).
Similarly, if you are on a VPS server with 2GB RAM / 2 Cores (apart from other resources), you may consider to upgrade the VPS resources.
The upgrade that you get should go permanent as your traffic increase is consistent.
Scenario 2 – Traffic increase is temporary
So, your website got featured on a popular news site or customers really liked your products and shared the stories on Facebook/Twitter? Similarly, you ran an ad campaign on Google Ads or Facebook ads etc. during black Friday or holiday season?
All that resulted in traffic spike but only for a few days or weeks and then back to normal traffic, Right?
In that case, your current server capacity is such that only can deal with the regular traffic, but as it increases due to any above mentioned factors, it is unable to handle this.
What happening is, say you get 30 visitors at a time (on average during peak hours) and CPU/RAM is enough to deal with it. When it reaches 60 (as running campaign etc.) it becomes overloaded and refuse the request sent by the browser. During this period, your visitors starts seeing “503 – Service unavailable” message.
As this request is refused to many visitors till resources are free or users are gone themselves – the server becomes available and starts entertaining user’s request.
The way forward for this temporary traffic spikes is moving to hosting providers that are flexible on resources. They automatically upgrade the hardware required during traffic spikes and return to normal levels during regular traffic period.
In that case, they will charge you more only for the period when your website consumed more resources.
What can be other reasons of overloading?
Let us say that your website is getting around one thousand visitors per day and site was running smoothly. Your website is based on the WordPress platform and you required installing new plug-ins and site started seeing 503 error for the same number of visitors.
Plug-ins
In that case, the installed plug-in(s) may be the reason for that. Certain plug-ins consume many resources and not developed keeping that in mind by developer. You should read reviews by other users if that is the case.
The recommended step will be uninstalling plug-ins one by one and seeing the resource usage and if 503 – site temporary unavailable issue resolves.
WordPress Theme
Similarly, if you installed a new theme or upgraded the current one and soon started seeing 503 complains. In that case, either contact the theme developer especially if you are using a premium (paid) theme or if you are a developer then consider looking at the code yourself.
Other possible causes of 503 status code
The 503 error can also appear due to these reasons:
- DoS attack. The DoS stands for Denial of Service and that can be due to malicious attack on your server. In that case, you should contact the hosting company and discuss the issue.
- Something is crashed on the server. Restart running processes.
- Limit of connections can also be a problem. For example, your website is set to deal with 25 MySQL connections concurrently. Increase this and see if it helps.
- Bandwidth issue. If your website is using heavy images or you have hosted videos then bandwidth limit or shortage can also be an issue. Check the bandwidth usage in your control panel and compare it with the available bandwidth with your hosting deal.
What if I am using Microsoft IIS Server?
If website in question is hosted on Windows IIS server then it gives more specific description of the 503 error. The general error description is the same:
“503 – Service unavailable”
However, the sub-codes give more specific reason as listed below:
- 0 – Application pool unavailable.
- 2 – Concurrent request limit exceeded.
- 3 – ASP.NET queue full
- 4 – FastCGI queue full
For more details on https status codes in IIS, go to Microsoft official website here.
Trying to fix HTTP 503 at client side
As said above, the 503 status code/error is related to the server. Whether you are the owner or the user of the website, you may try these:
Restart router/modem
If the error description is “Service Unavailable – DNS Failure” then you should try refresh the website after restarting the router or modem.
Try third party website – It’s not you only
You may confirm whether it’s only you or across that website is down or not. For that, you may use websites like https://www.isitdownrightnow.com/ that checks if the website is down for you or all. Many other websites are also available like this to check whether a website is down for you or all.
Refresh website
Press F5 or ctrl+R – it should refresh the web page you are trying to access. As I said earlier, the 503 error does not indicate that the server is corrupted – it may be a temporary glitch and can be fixed automatically as soon as resources are available to the server.
Switch DNS server
The 503 http error can also be caused by DNS server. In that case, your devices (computer, modem, switch) are right but DNS server that is set to match the domain names that you access from computer or smart phone is doing the problem.
You may contact your ISP regarding this issue for changing the DNS server or try using freely available e.g. provided by Google or OpenDNS.
In that case, first make sure that the website you are trying to access is down for you only.
HTTP 503 server error and SEO
This is an important aspect if you are getting traffic from Google and other search engines. As an owner of the website, you would not want Google to try crawling your website while your site is in maintenece mode.
You may be adding more resources, updating plug-ins, theme or MySQL database. Similarly, updating the WordPress version to the latest release or any other situation that your web server needs to get down then what you should do?
The answer is returning the 503 response code!
As Google tries to crawl your website and faces 503 error it takes this as the website is temporarily down for maintenance. So, it will retry crawling the site/specific page(s) after the specified duration.
The next question is how to set the duration for 503 response code?
By definition, the 503 status code description states the following (as per w3.org):
The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.
So, you may use Retry-After header for addressing Google or other search engines to crawl the website after specified duration.
Google will at least not re-crawl the website before that duration, however, how after that time depends on its crawler.