Ошибка 503 ip телефон
Хостинг предоставляет пользователям типичный стек 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 — превышен лимит, выделяемых пользователю ресурсов
Касаемо 503 ошибки в нашем случае, в логах мы видели запись:
На основании только этого лога, определить в чём может быть проблема не представлялось возможным.
Первичная диагностика
Изначально, мы проверили статистику превышения лимитов пользователем. Незначительные превышения были зафиксированы за предыдущие дни, но ошибки в журналах были свежие, более того они появлялись в журнале с периодичностью от одной до нескольких минут.
Так же мы изучили рекомендации CloudLinux, по приведённой в журналах ошибок ссылке.
Изменение каких-либо параметров результата не принесло.
Таким образом, проблема некорректного подключения к СУБД была исключена.
Следующим предположением было проверить — нет ли проблем с самим сайтом. Для этого подняли отдельный виртуальный сервер, на нём подняли максимально схожее окружение. Единственное существенное отличие — отсутствие CloudLinux. На тестовом сервере проблему воспроизвести не удалось. Итак, мы определили, что в коде сайта всё в порядке. Тем не менее, пробовали так же отключать плагины Wordpress, но проблема так же сохранялась.
В результате, пришли к тому, что проблема на нашем хостинге.
В ходе анализа журналов других сайтов было обнаружено, что проблема наблюдается на многих из них. Порядка 100 шт. на момент проверки:
В ходе тестирования обнаружили, что только что установленная чистая 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 и получая те же коды ошибок.
Команда была доработана, с целью записи всех процессов в файлы с указанием их идентификаторов.
При просмотре файлов трассировок, мы видим в некоторых одинаковые строки:
Если взглянуть на описание структуры сигналов, отправляемых процессами, то увидим, что
Указывает на идентификатор процесса, отправившего сигнал.
На момент изучения трассировок, процесса с PID 42053 в системе уже нет, поэтому в процессе захвата трассировок решили отслеживать так же процессы, отправившие сигнал SIGHUP.
Под спойлером описаны действия, которые позволили определить что это за процесс, а так же получить его трассировку и дополнительную информацию, о том, каким процессам он отправляет сигнал SIGHUP.
В итоге, получили название процесса /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, проблема была решена. Теперь наш хостинг работает стабильно. А нами был получен опыт, который пригодится нам в будущей работе.
Процедура устранения проблемы со стороны администратора веб-ресурса более сложная, но в большинстве случаев именно неправильные настройки на уровне хостинга или настроек сайта в панели управления CMS приводят к появлению ошибки сервера с кодом 503.
Мощный хостинг в подарок при заказе лицензии 1С-Битрикс
Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год мощного хостинга – специально для сайтов на 1С-Битрикс.
Устранение ошибки 503 пользователем
Если ни один из вышеприведенных способов не помог, а достучаться до сайта ну очень нужно, пишите о проблеме в техподдержку данного ресурса, приложив скриншот страницы с кодом и описанием ошибки.
Решение проблем с ошибкой 503 администратором веб-ресурса
При возникновении ошибки 503 Service Unavailable в любом ее проявлении администратор web-ресурса в первую очередь должен разобраться в причине ее появления. Игнорирование данной процедуры по принципу «само пройдет» может привести к тому, что сайт понесет глобальные потери в объеме пользовательского трафика и, как следствие, конверсии. Посетители, регулярно сталкивающиеся с проблемами доступа к определенному ресурсу, очень быстро занесут его в «игнор».
Наиболее частые причины возникновения ошибки 503 на стороне сервера
Как видим, решение практически всех проблем, приводящих к появлению ошибки 503, достигается использованием более мощных серверов и высокоскоростного качественного хостинга. Отрицательная сторона этого способа в его затратности. Распределение пользовательского трафика неравномерно по времени, и банальный апгрейд железа не поможет полностью исключить сбои в моменты пиковых нагрузок.
Как избежать появления ошибок 503
Для начала рекомендуется провести статистический анализ через административную панель (снять логи), чтобы понять, какие процессы создают максимальную нагрузку на сервер, и произвести определенные изменения в настройках.
Уменьшение нагрузки на базу данных можно добиться следующими способами:
- Регулярное обновление CMS, которое позволяет оптимизировать работу движка, уменьшить количество багов.
- Установка защиты от ботов и парсеров, которые часто запускаются вашими конкурентами, чтобы создать дополнительную нагрузку на ресурс и тем самым вывести его частично или полностью из строя.
- Уменьшение размера и, если это возможно, количества графических файлов на сайте, а также «тяжелых» таблиц.
- Ввод ограничений на количество одновременных участников в чате.
Оптимизация работы скриптов
- Отключите все лишние плагины и дополнения, кроме тех, которые реально необходимы для бесперебойной работы сайта (кэширование, оптимизация базы данных, создание бэкапов, сжатие изображений).
- Осуществляйте передачу файлов большого объема через FTP, т.к. использование других способов передачи данных приводит к созданию отдельного процесса.
- Осуществляйте массовую почтовую рассылку в моменты отсутствия пиковой нагрузки на сайт, например, ночью или ранним утром.
- При использовании удаленного сервера минимизируйте время ответа и оптимизируйте канал соединения.
- Проверьте наличие проблемных запросов к базе MySQL в файле mysql-slow.log.
Дополнительную нагрузку на сервер, приводящую к появлению ошибки 503, могут создать DDoS-атаки. Защита от них с помощью фильтрации относится к отдельной теме обсуждения.
Следует отметить, что ошибка 503, вызванная перегрузкой серверных мощностей, может пройти сама собой, без внешнего вмешательства. Чтобы понять, произошло ли исправление ситуации, достаточно периодически перезагружать сайт.
Заключение
Ошибка 503 Service Unavailable может возникнуть на любом сайте, управляемом одной из наиболее популярных CMS – WordPress (Вордпресс), Joomla (Джумла), DLE (ДЛЕ) и любой другой, использующей базы данных MySQL. Способов ее решения много, начиная от самых простых на уровне пользователя и заканчивая довольно сложными процедурами, которые должен выполнить администратор сайта.
Буду благодарен, если вы нашли нестандартный подход к устранению сбоя с кодировкой 503 и готовы поделиться своим опытом в комментариях!
SIP/2.0 100 Trying
Запрос обрабатывается.
SIP/2.0 180 Ringing
Местоположение вызываемого пользователя определено. Выдан сигнал о входящем вызове.
SIP/2.0 181 Call is Being Forwarded
Прокси-сервер переадресует вызов к другому пользователю.
SIP/2.0 182 Call is Queued
Вызываемый абонент временно не доступен. вызов поставлен в очередь.
SIP/2.0 183 Session Progress
Используется для того, чтобы заранее получить описание сеанса информационного обмена от шлюзов на пути к вызываемому пользователю.
2xx – ответы о завершении запроса
SIP/2.0 200 OK
Успешное завершение.
SIP/2.0 202 Accepted
Запрос принят для обработки. Используется для справки о состоянии обработки.
SIP/2.0 300 Multiple Choices
Указывает несколько SIP-адресов, по которым можно найти вызываемого пользователя.
SIP/2.0 301 Moved Permanently
Вызываемый пользователь больше не находится по адресу, указанному в запросе.
SIP/2.0 302 Moved Temporarily
Пользователь временно сменил местоположение. (Настроена переадресация по SIPUA в т.ч. с VOIP-телефона)
SIP/2.0 380 Alternative Service
Запрошенная услуга недоступна, но доступны альтернативные услуги.
4xx – невозможность обработать запрос
SIP/2.0 400 Bad Request
Запрос не распознан из-за синтаксических ошибок или ошибок в сигнализации.
SIP/2.0 401 Unauthorized
Нормальный ответ сервера о том, что пользователь еще не авторизовался. Обычно после этого абонентское оборудование отправляет на сервер новый запрос, содержащий логин и пароль.
SIP/2.0 401 Expired Authorization
Время регистрации истекло.
SIP/2.0 402 Payment Required
Требуется оплата (зарезервирован для использования в будущем).
SIP/2.0 403 No Such User
Нет такого пользователя. Ошибка в номере, логине или пароле.
SIP/2.0 403 No license available
Кончились лицензия на SIP
SIP/2.0 403 You
Нет такого пользователя. Ошибка в номере, логине или пароле.
SIP/2.0 403 User Disabled
Пользователь отключен.
SIP/2.0 403 You do not have the required right
Не верный логин в поле FROM
SIP/2.0 403 Wrong Guess
Ошибка в пароле.
SIP/2.0 403 Conflict
Такой SIP-номер уже используется.
SIP/2.0 403 Empty Route Set
Нет ни одного шлюза в роутинге.
SIP/2.0 403 Caller Not Registered
Нет такого пользователя.
SIP/2.0 403 Out of Look-Ahead Retries
Перебор узлов закончен.
SIP/2.0 403 Invalid Phone Number
Нет такого направления.
SIP/2.0 403 No Money Left on RFC Account
На счету не достаточно денежных средств для совершения вызова.
SIP/2.0 404 Not found
Вызываемый абонент не найден, нет такого SIP-номера.
SIP/2.0 404 Undefined Reason
Неопределенное направление.
SIP/2.0 404 Unknown user account
Логин и пароль не найдены.
SIP/2.0 404 Out of Order
В заявке на маршрутизацию по этому направлению нет принимающих шлюзов.
SIP/2.0 405 Method Not Allowed
Метод не поддерживается. Может возникать если пользователь пытается отправлять голосовую почту и т.п.
SIP/2.0 406 No codecs match
Неправильная конфигурация кодеков.
SIP/2.0 406 Not Acceptable
Пользователь не доступен.
SIP/2.0 407 Proxy Authentication Required
Необходима аутентификация на прокси-сервере.
SIP/2.0 407 User not found
Проверить ID на CGP
SIP/2.0 408 Request Timeout
Время обработки запроса истекло. Абонента не удалось найти за отведенное время. (Проблема с firewall, нет ответ на Invite от сервера)
SIP/2.0 408 Login timed out
За отведенное время не получен ответ от сервера на запрос авторизации.
SIP/2.0 410 No Route
Вариант "SIP/2.0 403 Empty Route Set". Нет доступа к ресурсу или ресурс по указанному адресу больше не существует.
SIP/2.0 413 Request Entity Too Large
Размер запроса слишком велик для обработки на сервере.
SIP/2.0 415 No Media
Звонок совершается неподдерживаемым кодеком.
SIP/2.0 416 Unsupported Scheme
Сервер не может обработать запрос из-за того, что схема адреса не распознана.
SIP/2.0 420 Bad extension
Неизвестное расширение. Сервер не распознал расширение протокола SIP.
SIP/2.0 421 Extension Required
В заголовке запроса не указано, какое расширение сервер должен применить для его обработки.
SIP/2.0 423 Interval Too Brief
Сервер отклоняет запрос, так как время действия ресурса короткое.
SIP/2.0 480 Invalid Phone Number
Неправильный номер телефона, не соответствует количество цифр или неправильный код страны или города.
SIP/2.0 480 Destination Not Found In Client Plan
Направления нет в тарифном плане абонента.
SIP/2.0 480 Wrong DB Response
Проблемы с центральной базой данных.
SIP/2.0 480 DB Timeout
Проблемы с центральной базой данных.
SIP/2.0 480 Database Error
Проблемы с центральной базой данных.
SIP/2.0 480 Codec Mismatch
Несоответствие кодеков.
SIP/2.0 480 No Money Left on RFC Account
Не достаточно денежных средств на счету.
SIP/2.0 480 Empty Route Set
Пустое направление. Нет принимающих шлюзов.
SIP/2.0 480 No money left
Не достаточно денежных средств на счету.
SIP/2.0 480 Temporarily Unavailable
Временно недоступное направление. (Возможно статус DND)
SIP/2.0 481 Call Leg/Transaction Does Not Exist
Действие не выполнено. Нормальный ответ при поступлении дублирующего пакета.
SIP/2.0 482 Loop Detected
Обнаружен замкнутый маршрут передачи запроса.
SIP/2.0 483 Too Many Hops
Запрос на своем пути прошел через большее число прокси-серверов, чем разрешено.
SIP/2.0 484 Address Incomplete
Принят запрос с неполным адресом.
SIP/2.0 485 Ambiguous
Адрес вызываемого пользователя не однозначен.
SIP/2.0 486 Busy Here
Абонент занят.
SIP/2.0 487 Request Terminated
Запрос отменен. Обычно приходит при отмене вызова.
SIP/2.0 488 Codec Mismatch
Нет шлюзов с поддержкой заказанного кодека.
SIP/2.0 488 Private IP Address
Адрес RTP media из сетей RFC1918.
SIP/2.0 488 Not acceptable here
Не совпадают кодеки
SIP/2.0 491 Request Pending
Запрос поступил в то время, когда сервер еще не закончил обработку другого запроса, относящегося к тому же диалогу.
SIP/2.0 499 Codec Mismatch
Отсутствует кодек.
5xx – ошибки сервера
SIP/2.0 500 Internal Server Error
Внутренняя ошибка сервера.
SIP/2.0 500 DB Timeout
Нет ответа от базы данных.
SIP/2.0 500 Database Error
То же самое, но в другой момент.
SIP/2.0 500 Wrong DB Response
Неправильный ответ базы данных.
SIP/2.0 500 Undefined Reason
Неопределенная причина.
SIP/2.0 500 account has been moved to a remote system
Аккаунт перенесен в удаленную систему (дословно).
SIP/2.0 500 Call placing quota exceeded
Превышен CPS.
SIP/2.0 501 Method Not Supported Here
В сервере не реализованы какие-либо функции, необходимые для обслуживания запроса. Метод запроса SIP не поддерживается.
SIP/2.0 502 Bad Gateway
Сервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос.
SIP/2.0 503 Service Unavailable
Сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания.
SIP/2.0 504 Server time-out
Сервер не получил ответа в течение установленного промежутка времени от сервера, к которому он обратился для завершения вызова.
SIP/2.0 505 SIP Version not supported
Версия не поддерживается. Сервер не поддерживает эту версию протокола SIP.
6xx – глобальная ошибка
SIP/2.0 600 Busy everywhere
Вызываемый пользователь занят и не желает принимать вызов в данный момент.
SIP/2.0 603 Decline
Вызываемый пользователь не желает принимать входящие вызовы, не указывая причину отказа.
SIP/2.0 604 Does Not Exist Anywhere
Вызываемого пользователя не существует.
SIP/2.0 606 Not Acceptable
Соединение с сервером было установлено. Отдельные параметры, такие как тип запрашиваемой информации, полоса пропускания, вид адресации не доступны.
Наиболее распространенная причина проблемы – перегруженность сервера запросами. Он не успевает их обрабатывать, и всем клиентам в очереди выдает ошибку с кодом 503. Такая картина может наблюдаться, например, во время DDoS-атаки.
Обнаружив ошибку 503, лучше всего ничего не делать. Подождите 3-5 минут. Очередь запросов в большинстве случаев – временное явление, и вскоре сайт станет доступен. Чего точно не нужно делать,– это постоянно перезагружать страницу с ошибкой. Так вы только увеличиваете число запросов в очереди.
Как устранить ошибку 503 на стороне пользователя?
Что делать, если ошибка 503 – на стороне веб-ресурса?
Прежде всего, администратору сайта для ошибки сервера с кодом 503 желательно прописать параметр Retry After. Он будет показывать клиенту, через какое время тот может попробовать повторно соединится с сервером. Это уменьшит число бесконечных перезагрузок страниц и поможет снизить и без того чрезмерную в данный момент нагрузку на сервер.
Распространенные причины возникновения ошибки 503 и их исправление
В основном, ошибка 503 Service Unavailable вызывается следующими категориями причин:
- Слишком много запросов к веб-серверу.
- Много медленных запросов к MySQL.
- На сайте много устаревших, нерабочих, конфликтующих плагинов и модулей CMS.
- Неоптимизированная работа скриптов.
Также ошибка 503 может быть вызвана тем, что ваш сайт "перерос" возможности вашего хостингового тарифного плана. В этом случае стоит подумать над тем, чтобы выбрать более производительный тариф виртуального хостинга или же VPS/VDS, выделенный сервер.
Уменьшаем число запросов к веб-серверу
Устранение ошибки 503 прежде всего подразумевает снижение нагрузки на веб-сервер. Для этого:
- установите антилич-систему. Она не позволит скачивать ваши файлы и картинки по ссылке на сторонних ресурсах – ведь так увеличивается нагрузка на ваш сервер и может возникать ошибка 503;
- ограничьте деятельность различных ботов и роботов. При сканировании они создают множество запросов;
- проверьте, чтобы на сайте было как можно меньше ссылок на внешние ресурсы. Оставьте только необходимые и важные. Например, иногда можно встретить большое количество информеров на странице. Каждый информер - ссылка на другой сайт, соединение с чужим сервером. Это создает дополнительную нагрузку на сервер;
- по возможности объедините обращения к большому числу мелких файлов (скриптов, картинок, таблиц стилей), чтобы они обрабатывались одним запросом, а не множеством.
Оптимизируем работу с MySQL
- Включите кеширование – так время обработки запроса существенно уменьшится.
- Объединяйте запросы к БД (базе данных), чтобы один запрос обрабатывал сразу множество строк или столбцов, а не по одному.
- Используйте индексирование по столбцам, которые часто используются в выборках.
- Старайтесь не вкладывать один запрос в другой, так как в этом случае MySQL часто не может использовать индексы и будет долго возвращать результат.
Исправляем проблемы с CMS
Ошибка 503 Service Unavailable может быть вызвана некорректно работающими или "тяжелыми" компонентами движка вашего сайта. Чтобы выявить это, отключайте последовательно плагины или модули. Так вы найдете компонент, после выключения которого все начнет нормально работать. Оптимизируйте его или замените на более современный и быстрый.
Также рекомендуется поддерживать порядок в вашем "парке" плагинов – вовремя их обновлять, удалять те, что не используются, Плюс необходимо отслеживать корректность работы сайта после установки каждого нового модуля, а также после обновления старых – могут возникать конфликты программного обеспечения.
Оптимизируем работу скриптов
Что можно сделать для предотвращения проблемы?
В заключение дадим несколько советов – как предотвратить возникновение ошибки 503 Service Unavailable:
Читайте также: