Web error codes 503



HTTP Error 503. Service Unavailable: случай в поддержке хостинга

Начало

Хостинг предоставляет пользователям типичный стек 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. В логах контейнера присутствовали сообщения:

Как раз, среди этих сообщений были сообщения о прерванном подключении исследуемого сайта. Это дало предположение, о том, что подключение к СУБД выполняется некорректно. Для проверки мы развернули копию сайта на тестовом домене, сконвертировали базу данных сайта под нативную в Centos 7 версию СУБД 5.5.65-MariaDB. На тестовом сайте выполнили несколько сотен запросов с помощью утилиты curl. Ошибку воспроизвести не удалось. Но этот результат был предварительным и после конвертации БД на рабочем сайте проблема так и осталась.

Таким образом, проблема некорректного подключения к СУБД была исключена.

Следующим предположением было проверить — нет ли проблем с самим сайтом. Для этого подняли отдельный виртуальный сервер, на нём подняли максимально схожее окружение. Единственное существенное отличие — отсутствие CloudLinux. На тестовом сервере проблему воспроизвести не удалось. Итак, мы определили, что в коде сайта всё в порядке. Тем не менее, пробовали так же отключать плагины WordPress, но проблема так же сохранялась.

В результате, пришли к тому, что проблема на нашем хостинге.

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

В ходе тестирования обнаружили, что только что установленная чистая CMS WordPress также периодически выдаёт ошибку 503.

Примерно за 2 месяца до этого мы проводили работы по модернизации сервера, в частности изменили режим работы Apache с Worker на Prefork, с целью получить возможность использовать PHP в режиме LSAPI, вместо медленного CGI. Было предположение, о том, что это могло повлиять, либо требуются какие-то дополнительные настройки Apache, но вернуть обратно режим Worker мы уже не могли. В ходе изменения режима работы Apache выполняется изменение всех конфигов сайтов, процесс не быстрый и не всё могло пройти гладко.

Корректировка настроек Apache так же не дала желаемого результата.

Читайте также:  Microsoft sql native client sql server divide by zero error encountered

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

На данном этапе мы собрали имеющуюся информацию и результаты проведённых работ. С ними обратились в поддержку 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 предлагается выполнять трассировку найденных в системе процессов:

Команда была доработана, с целью записи всех процессов в файлы с указанием их идентификаторов.

При просмотре файлов трассировок, мы видим в некоторых одинаковые строки:

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

Указывает на идентификатор процесса, отправившего сигнал.

На момент изучения трассировок, процесса с PID 42053 в системе уже нет, поэтому в процессе захвата трассировок решили отслеживать так же процессы, отправившие сигнал SIGHUP.
Под спойлером описаны действия, которые позволили определить что это за процесс, а так же получить его трассировку и дополнительную информацию, о том, каким процессам он отправляет сигнал SIGHUP.

Ждём пока в консоли 1 появятся сообщения, при этом в консоли 4 видим статус запроса с кодом ответа 503, прерываем выполнение в консоли 4.

В итоге, получили название процесса /opt/alt/python37/bin/python3.7 -sbb /usr/sbin/cagefsctl —rebuild-alt-php-ini

Данный процесс выполнялся в системе с периодичностью раз в минуту.

Делаем трассировку нескольких процессов cagefsctl, чтобы отследить хотя бы один от начала до конца:

Далее изучаем что он делал, например:

Так же были получены идентификаторы процессов, которые были завершены сигналом 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, проблема была решена. Теперь наш хостинг работает стабильно. А нами был получен опыт, который пригодится нам в будущей работе.

Читайте также:  Ошибка waves license error

Источник

503 Service Unavailable Error Message: What It Is and How to Fix It

Retry the URL, reboot the router/modem, or just come back later

In This Article

Jump to a Section

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.

If rebooting your equipment didn’t correct the 503 DNS Failure error, there might be temporary issues with the DNS servers themselves. In this case, pick new DNS servers from our Free & Public DNS Servers list and update the servers on your computer or router.

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.

Читайте также:  Error while executing network request

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.

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.

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.

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.

Источник

Оцените статью
toolgir.ru
Adblock
detector