Серверные ошибки.

Авто 18.07.2019
Авто

Пожалуй, вы согласитесь с тем, что ошибка 503 service unavailable самая сбивающая с толку из всех ошибок, который вы когда-либо получали на своём сайте WordPress.

Главной причиной запутанности, является сложность определения истинной причины её возникновения. А факт, что она может быть вызвана целым рядом причин усугубляет ситуацию. Более того, в зависимости от конфигурации сервера данная ошибка может отображаться по разному. Например, вы можете увидеть такие варианты:

503 Service Unavailable Http/1.1 Service Unavailable HTTP Server Error 503 503 Error HTTP 503 HTTP Error 503

Оказывается, исправление ошибки 503 service unavailable относительно простая задача и мы покажем вам в этой статье, как именно это сделать.

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

Причины ошибки 503 Service Unavailable в WordPress

Ошибка 503 service unavailable может быть вызвана рядом причин, включая (но не ограничиваясь):

  • Ошибки в плагинах или темах
  • Сбои в работе пользовательский PHP скриптов
  • Недостаточно ресурсов сервера
  • Ошибки сервера
  • Злоумышленные атаки, такие как хорошо всем известные DDoS (Distributed Denial of Service)

Мы пройдёмся по всем этим причинам и предложим различные решения по устранению ошибки 503 service unavailable.

Ошибка в плагине

Некорректно работающий плагин может быть причиной большинства возникающих в WordPress ошибок. К слову, ошибка в плагине лидирующая причина возникновения ошибки 503 service unavailable в WordPress.

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

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

Но как деактивировать все плагины WordPress, если у вас нет доступа к админ панели?

Деактивация всех плагинов WordPress

Зайдите в ваш каталог WordPress по FTP или используя . В этом руководстве будем использовать популярную программу подключения по FTP :

Так выглядит наш тестовый каталог WordPress в Файловом менеджере на Hostinger:

Внутри нашего каталога WordPress, найдите и откройте каталог wp-content , который содержит ваши плагины, темы и медиа контент среди прочего.

Нажмите правой кнопкой мыши на каталоге plugins и переименуйте его в plugins-old :

Это приведёт к деактивации всех плагинов одновременно. Теперь переименуйте обратно plugins-old в plugins и перегрузите свой сайт. Если ошибка 503 исчезла, плагин является причиной вашего текущего затруднительного положения.

Всё, что нам сейчас потребуется сделать, это найти тот плагин, который вызывает проблему.

Теперь вы сможете зайти в свою админ консоль на сайте WordPress через браузер и активировать по очереди один за другим все плагины.

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

Если деактивация плагинов не помогла в устранении ошибки 503 service unavailable, читайте дальше другие решения. Теперь давайте проверим, не является ли причиной проблемы ваша тема.

Сомнительная тема WordPress

Порой, скрипт PHP с ошибками, который выдаёт ошибку 503 может быть частью темы. Для проверки этого, мы переключимся на тему по умолчанию Twenty Seventeen. Между прочим, рекомендуется оставлять темы по умолчанию даже после установки новой темы, поскольку она (тема по умолчанию) служить запасной темой в случае проблема с вашей.

Деактивация темы WordPress

Прежде, чем мы деактивируем вашу тему (или удалим, если это проблема) нужно создать бэкап. Подключитесь к своему сайту WordPress по FTP и перейдите в каталог wp-content -> themes .

Найдите вашу текущую тему и скачайте её, как показано ниже:

Если ошибка 503 service unavailable осталась, возможно, фрагмент кода PHP с ошибкой находится где-то в другом месте вашего сайта.

Сбой в работе пользовательского кода PHP

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

В обычном режиме, когда ваш сайт работает, можно использовать плагины для отладки, такие как Query Monitor и Debug Bar .

Включение WP_DEBUG

Но, так как 503 ошибка часто блокирует вам вход в админ панель вашего WordPress сайта, мы будем использовать константы WP_DEBUG и WP_DEBUG_LOG , WP_DEBUG_DISPLAY и @ini_set доступные в WordPress.

Для включения режима отладки в WordPress и записи логов ошибок в файл, следуйте шагам:

  1. Откройте каталог WordPress по FTP или в Файловом менеджере.
  2. Откройте файл wp-config.php
  3. Прокрутите до определения константы WP_DEBUG . Выглядит так: define ("WP_DEBUG", false); . Если она пропущена, мы добавим её сразу перед словами /*That"s all, stop editing! Happy blogging.*/
  4. Вставьте магический код отладки DEBUG. Только исправьте код define ("WP_DEBUG", false); на:
    define ("WP_DEBUG", true);
    define ("WP_DEBUG_LOG", true);
    define ("WP_DEBUG_DISPLAY", false);
    @ini_set ("display_errors", 0);
  5. Сохраните изменения

Теперь перезагрузите свой сайт, чтобы вызвать появление ошибки. Далее, найдите файл под названием debug.log внутри вашего каталога wp-content в каталоге WordPress.

В этом файле содержаться записи по всем ошибкам на вашем сайте. Если ваша ошибка 503 service unavailable вызвана фрагментом пользовательского кода, это будет видно с указанием её подробностей.

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

Причины, связанные с сервером

Ряд причин, связанных с сервером тоже может вызывать ошибку 503 service unavailable. Обычно, ошибка 503 вызванная проблемами с сервером исчезает автоматически через несколько минут.

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

Повысить ресурсы сервера

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

Вы постоянно получаете ошибку 503 service unavailable? Если да, проверьте свои показатели в Google analytics. Если вы получаете больше трафика, чем обычно, вам определённо перестало хватать изначальных ресурсов сервера.

Однако, если у вас нету прироста в трафике, но всё равно возникает ошибка 503, ваша проблема не имеет отношение к недостаточному количеству RAM или памяти на сервере.

Ограничение частоты сканирования Google

Для индексирования вашего контента, Google использует специальные скрипты, известные как сканеры (crawlers). Они регулярно посещают сайт и собирают контент и определяют другие показатели ранжирования.

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

Примечание: Изменения, внесенные вами, будут действовать в течение 3 месяцев. К тому же, если у вас есть версия сайта с WWW и без WWW, сделать настройки нужно для обоих.

Войдите в Google Search Console и выберите свой сайт. Далее нажмите на иконку шестерёнки, как показано ниже:

На следующей странице настройте частоту сканирования Google перемещением ползунка влево:

Ограничение WordPress Heartbeat

Согласно WordPress.org, “…Heartbeat API – это пример API приложения встроенного в WordPress и осуществляющего опрос сервера, позволяя в режиме почти реального времени видеть показатели. ” Он отвечает за такие функции, как авто-сохранение и так далее.

Приложение WordPress Heartbeat API запускает файл admin-ajax.php среди других запросов с регулярным интервалом, когда вы заходите на свой сайт.

Это функциональность потребляет ресурсы вашего сервера, но вы можете её ограничить или вообще выключить. Когда вы восстанавливаете свой сайт, вы можете использовать плагин Heartbeat Control WordPress для ограничения этой функциональности, вместо того, чтобы выключить его вообще.

Чтобы определить вызывает ли WordPress Heartbeat ошибку 503 service unavailable на своём WordPress сайте, добавьте следующий код в свой файл темы functions.php сразу после открытия тэга

Add_action("init", "stop_heartbeat", 1); function stop_heartbeat() { wp_deregister_script("heartbeat"); }

Сохраните изменения и перезагрузите сайт. Если ошибка 503 пропала, вздохните с облегчением. Но если ошибка 503 service unavailable всё ещё осталась, это значит WordPress Heartbeat API является наименьшей из ваших проблем.

Если код выше не помог устранить ошибку 503, не забудьте удалить этот код из своего файла functions.php.

Заключительные заметки

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

Надо отметить, что ошибка 503 service unavailable, это преимущественно результат выполнения некорректного кода PHP, такого как ошибка в плагине или теме.

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

Независимо от того, что происходит, помните вы всегда можете исправить ошибку 503 service unavailable совершенно не утруждая себя. А поэтому, нет повода для паники, так как это не постоянная ситуация.

Сталкивались ли вы с ошибкой 503 service unavailable? Как вы её устраняли? У вас есть вопросы или предложения? Пожалуйста, делитесь ими в комментариях ниже. Заранее благодарим!

В появлении ошибки 503 многие обвиняют сервер. Коды 5xx ошибок относятся к категории серверных, но возникают не только из-за проблем в его работе. Вот так обычно выглядит эта ошибка:

Код 503 означает, что сервер, где базируется ресурс, не принимает запросы на заданный адрес. Процедура приема запросов происходит беспрерывно, для всех аккаунтов выделено лимитированное число процессов для обработки запросов. Обработка запросов происходит поочередно. На длину очереди установлено ограничение. При превышении лимита прием запросов прекращается, а пользователю возвращают «error 503». Для решения проблемы достаточно прекратить подачу запросов с аккаунта.

Как узнать, кто виноват в ошибке 503?

Если Вы видите ошибку «http error 503 the service is unavailable» - и не знаете, проблема ли это избыточной нагрузки на Ваш сайт, или запросами перегружен сервер хостера, попробуйте открыть «соседей» по IP адресу.

Узнать их можно онлайн, например, на сервисе cy-pr.com:

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

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

Чтобы снизить частотность ошибки 503 нужно детально подойти к рассмотрению причин возникновения проблемы.

Передача больших файлов с использованием скриптов.

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

Удаленный сервер возвратил ошибку 503 - сервер недоступен из-за большого количества запросов к внешним ресурсам.

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

Виртуальный хостинг сайтов для популярных CMS:

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

Конечно, это не станет причиной 503-й ошибки, но при каждой загрузке страницы – это лишних 15 внешних запросов, а рост одновременных запросов рано или поздно приведет к тому, что сайт станет недоступен.

Неоптимизированные «тяжелые» или устаревшие модули CMS.

Если сервер возвратил 503 ошибку, можно попробовать поочередно отключать модули, плагины, надстройки и другие дополнения. При этом вы заметите изменение скорости загрузки сайта. Это наблюдение позволит принять решение о замене или исправлении поврежденного дополнения. Удалите или отключите устаревшие или ненужные вам дополнения, если они включены в дистрибутивы CMS.

Медленные запросы к базе данных MySQL.

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

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

Выходом станет объединение всех файлов в один. Запросы отправляются из чатов, из блоков сайта, при открытии множества браузерных вкладок, при применении iframe кодов на ресурсе, его использовании прочими сайтами. Увеличивают число запросов и Dos-атаки, флуд, спам.

Почтовая рассылка.

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

Большое число одновременных запросов к серверу.

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

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

Пример задания, выполняющегося долгое время – синхронизация данных для интернет-магазинов с более чем 50 000 позиций. Поскольку каждый товар имеет от 20 до 100 полей в базе данных (от арткула до ссылок на дополнительные фото и условия доставки) – синхронизация данных может выполняться долго, при этом она создает десятки тысяч запросов к серверу.

Пользователи интернета при заходе на сайты встречают ошибку 503 - Service Unavailable. Этот код появляется на сайтах, работающих на всех популярных CMS (Content Manage Service) , таких как MySQL, Joomla, Datalife Engine, WordPress и т.д. Поэтому, давайте разберемся, что означает ошибка 503.

Что это такое?

Код ошибки 503 (Service Unavailable) – временная недоступность сервиса. Если говорить простым языком – это своеобразная затычка пустой страницы, куда попадает пользователь.

Причины такой проблемы:

  1. Ошибки соединения с базой данных MySQL или другой CMS.
  2. Неправильная работа плагинов – они перестают выполнять нужные функции или конфликтуют с другими плагинами.
  3. Малая пропускная способность сайта – входных запросов больше, чем обрабатывает сервер (превышен лимит одновременного прибывания пользователей на сайте).
  4. Передача (или обработка) больших файлов на сервере приводит к зависанию скриптов сайта и замедляет работу.
  5. Не оптимизированая автоматическая почтовая рассылка забирает ресурсы сервера, тем самым замедляя его работу.

Как исправить?

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

А если вы администратор ресурса, проведите анализ и поиск неисправности. Также свяжитесь со своей хостинговой компанией.

Если ваши скрипты работают неправильно или зависают, выполните следующие:

  1. Избегайте запросов с удаленным сервером. Если исключить невозможно, уменьшите таймаут подключения и убедитесь в стабильном соединении.
  2. Не используйте скрипты для передачи статичных файлов большого размера посредством PHP – операция может не завершиться, так как компоненты CMS имеют ограниченное время активности. Настройте прямую передачу файлов.
  3. Старайтесь начинать почтовую рассылку в то время суток, когда нагрузка на сервер минимальна (например ночь - утро). Или выполните рассылку вручную.
  4. Оптимизируйте запросы к базе данных. Для этого включите функцию кэширования.

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

Также проблема может быть в большом количестве обращений к серверу. В таком случае:


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

Ошибка 503 Service Temporarily Unavailable - что она значит и как ее исправить - 3.7 out of 5 based on 11 votes

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

Данная ошибка может появляться на сайтах сделанных на любых CMS, в том числе и на таких популярных как Joomla, WordPress, Drupal. Наверняка только самый удачливый пользователь никогда не сталкивался с проблемой: вводишь адрес странbцы, а в ответ «Service Temporarily Unavailable». Так что означает ошибка 503? Давайте разберемся.

Что означает данная ошибка

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

Возможно, что это причина временная и придется немножко подождать, пока сервер «отойдет» от перегрузки, освободив нужное количество ресурсов для обработки Вашего запроса. Лучше всего оставить попытку взаимодействовать с сайтом на 3-5 минут, иначе образуется другая очередь – обращений к серверу. Она только усугубит ситуацию.

Причины возникновения и борьба с ошибкой - инструкция для владельцев сайтов

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

Большое количество запросов к серверу.

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

Причина 1. Количество страниц на сайте не равняется количеству запросов посылаемых к серверу. Возникает это из-за того что на каждой странице сайта могут располагаться различные объекты, такие как: java- и PHP-скрипты, файлы таблиц стилей, изображения и т. д. Чтобы загрузить каждый из них необходимо послать отдельный запрос. Чем больше создается запросов к серверу, при запросе одной отдельной страницы тем больше вероятность возникновения ошибки.

Решение: Оптимизируйте свой сайт и скрипты, устраните не нужные элементы, которые не несут никакой пользы, на странице, а также используйте кэширование – это способно снизить нагрузку на ваш сервер.

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

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

Причина 3. Посетитель сайта может вызывать большое количество обращений к серверу, находясь на одной странице, если сайт использует AJAX. Тяжелее всего приходится веб-серверу когда на сайте размещаются онлайн-конференции, игры, чаты и иже с ними.

Решение: Возможно придется сменить хостинг на более мощный, например сменить тариф виртуального хостинга на VPS или уже имеющийся тариф VPS на более производительный.

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

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

Причина 5. DDOS-атака на сайт.

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

Медленная работа или зависание скриптов.

Подвоха стоит ждать и со стороны скриптов, они могут работать чересчур медленно или подвисать. Тогда-то пользователь и получит неприятное окошко «Ошибка 503 Service Temporarily Unavailable».

Зависать скрипты могут по следующим причинам:

Причина 1. Соединение с удаленным сервером.

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

Не используется ли в PHP-скриптах Вашего сайта Include-функции? Если они расположены на одном аккаунте, используйте локальный путь для обращения к ним, а не путь вида http://. Это поможет избежать дополнительного HTTP-запроса, занимающего лишний рабочий процесс, тем самым загружая сервер.

Причина 2. Множество «тяжелых», а иногда и испорченных или не доработанных расширений, плагинов и модулей CMS.

Решение: Необходимо проверить компоненты и плагины CMS. Отключайте их по очереди, и проверяйте работу сайта, чтобы найти «слабое звено», замедляющее загрузку сайта. Лучше всего отказаться от этих компонентов, исключив их совсем или найдя альтернативу пошустрее. Не забывайте удалять неактивные компоненты и плагины.

Причина 3. Через PHP передаются большие статичные файлы.

Решение: Лучше всего передавать файлы подобного рода напрямую, а не использовать для их передачи скрипты. Почему? Да потому, что продолжительность работы скриптов ограничена и передача файла может прерваться. К тому же, чтобы передать файл через PHP, нужен еще один процесс-рабочий, который выпадает из механизма обработки пользовательских запросов на время передачи файла.

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

Причина 4. Огромное количество медленных запросов к MySQL, а также не оптимизированность базы данных и её размер.

Решение: Нужно установить кэширующие компоненты в движок. Они сократят количество SQL-запросов, кстати, не лишним будет оптимизировать сами запросы. Следует проиндексировать таблицы базы данных по столбцам, что используются в выборке. Ничего не помогает? Смените движок на более оптимальный.

Найти

Серверные ошибки

Ошибка 403 - 403 Access denied (Доступ к ресурсу запрещен)

Ошибка 403 означает, что доступ к ресурсу, папке или файлу запрещен (получен код 403 Forbidden). Возможно, что доступ был закрыт через файл.htaccess .

Так же ошибка может быть вызвана тем, что в папке нет index файла.

Ошибка 404 - 404 File not found

Документ по указанному URL не существует. Возможно, такой файл удален, либо вы ошиблись при наборе URL в браузере или пошли по неверной ссылке.

Ошибка 500 - 500 Internal server error

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

Также, если файл сохранён в кодировке UTF-8, он должен быть без метки BOM . Если же файл сохранён в UTF-8 с меткой BOM , откройте файл и сохраните его без метки BOM.

Как убрать UTF-8 BOM метку

Чтобы убрать BOM , например в Notepad++, нужно открыть в нём проблемный файл, кликнуть по пункту «Кодировки» в верхнем меню и выбрать «Преобразовать в UTF-8 (без BOM)». Далее сохраните файл и загрузите его на сервер (хостинг).

Ошибка 500 у CGI скриптов, может быть вызвана из-за неправильных прав у файла-скрипта CGI (должны быть 755).

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

Ошибка 502 - 502 Bad Gataway

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

Одна из наиболее частых причин ошибки 502:
скрипт сайта отправляет cookie или другие данные множество раз при каких-то определённых действиях, в результате чего объём заголовков (header) растёт больше допустимого лимита веб-сервера.

При достижении порогового значения, веб-сервер отклоняет запрос с слишком большим заголовком, отбрасывая соединение с ошибкой 502 Bad Gateway . Такое бывает, когда скрипты написаны разработчиками без должной оптимизации.

На хостинге используется связка веб-серверов nginx (front-end) + apache (back-end)
У nginx указаны оптимальные параметры для заголовков:

Proxy_buffer_size 32k; proxy_buffers 16 32k;

Прочие причины:
иногда пользователи невнимательны в выборе опций, и не читают их описание.
В зайдите в раздел Домены → Настройки, если там включены все опции прдряд (стоят галочки), то отключите их. Это может убрать ошибку 502.

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

Ошибка 503 - 503 Service temporarily unavailable

Ошибка 503 (Service Temporarily Unavailable) – обслуживание временно недоступно.

Многие не до конца понимают причины появления ошибки 503 и считают, что во всем виноват сервер.
5хх ошибки действительно серверные, но это не всегда значит, что проблема именно на стороне сервера.

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

Информация для более детального понимая проблемы.

Что же такое хостинг? Хостинг - некоторое количество аккаунтов на одном сервере, в каждом аккаунте может быть не один сайт и основное ограничение на нашем хостинге - это ограничение по нагрузке аккаунта пользователя, причем ограничение от одного потока процессора (CPU), а мы используем мощные многопроцессорные сервера.
Приведем пример на основе нашего сервера с минимальной частотой CPU 3.2GHz - это частота одного потока (ядра) процессора, а их 8 (на некоторых - больше), но как написано выше, ограничение для одного аккаунта считается от одного ядра. Теперь возьмем минимальный тариф SSD1 , где ограничение по нагрузки составляет 20% CPU. 20% от 3.2GHz это640MHz, причем всего за 100 рублей/месяц. Много это или мало - решать вам, но для минимального тарифа этого более чем достаточно. Поэтому для каждого аккаунта на сервере выделяется определенное количество рабочих процессов, которые обрабатывают запросы пользователей ваших сайтов. Эти запросы поступают на сервер в порядке очереди. Если этих запросов несколько, то сервер их легко обработает, но если их достаточно много - очередь будет расти, а если процессы еще в добавок и тяжелые, то очередь будет продвигаться медленнее.
Сервер ограничен в вычислительных мощностях, поэтому есть ограничения по нагрузке для каждого аккаунта. Если серьезная нагрузка длится слишком долго - может «рухнуть» весь сервер, все аккаунты пользователей и все сайты - вот тут и возникает ошибика 503 (Service Temporarily Unavailable) говорящая о том, что веб-сервер не может обрабатывать больше запросов и необходимо подождать пока очередь уменьшиться и можно будет дальше обрабатывать запросы.
Мы рассмотрели, как устроен хостинг и теперь постараемся описать основные причины, при которых может расти очередь, и, по возможности, пути решений этой проблемы. Иногда это может быть очень сложной задачей и собственных знаний может не хватить, но тем не менее, рассмотрим варианты:

- Зависание скриптов при передаче больших статичных файлов через PHP.

Такие большие файлы лучше всего передавать напрямую, не используя скрипты. Почему? Скрипты работают определенное время, а не постоянно и при окончании времени работы скрипта прерывается передача файла, соответственно файл не будет передан полностью, а запрос оставит процесс веб-сервера работать ещё длительное время. Также, каждая передача файлов через PHP - это отдельный рабочий процесс веб-сервера apache, а для передачи статичных файлов напрямую будет использоваться отдельный многопоточный процесс веб-сервера nginx, который может обрабатывать множество потоков, а значит не будет влияния передачи файла на загрузку.
Хранение и отдачу файлов можно также реализовать через правила mod_rewrite и файл.htaccess , в этом случае можно использовать решение антилич. Антилич - это система, которая не позволит скачать ваш файл по ссылке на странице с другого сайта. Часто, если ваш файл популярен, недобросовестные web-мастера могут поставить у себя прямую ссылку на него, не упоминая о вашем сайте. Естественно, если сайт, на котором подгружается изображение от вашего сайта, посещаемый - это так же может создавать дополнительную нагрузку.

- Удаленное соединение с другим сервером (сайтом и т.д.).

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

Также часто используют вставки отдельных функций, кодов и т.д. (include) и если эти функции располагаются в одном аккаунте - используйте только локальные пути, а не в виде вставки url-адреса (http://site.ru/file.php). Лучше вставить конструкцию, например, такого вида: include "file.php"; . Это не будет делать дополнительный внешний запрос на сервер и тем самым вы снизите нагрузку, уменьшите количество создаваемых процессов.

Очень тяжелые или испорченные дополнения систем управления сайтами (при использовании CMS и прочих скриптов).

Для нахождения таковых можно отключать дополнения (плагины, хаки, модули и т.д.) по отдельности. Возможно при включении/отключении вы заметите, что сайт станет быстрее/медленнее загружаться. Далее вы сможете найти более легкую замену или исправить поврежденные дополнения. Также в дистрибутив многих CMS включены дополнения, которые лично вам могут быть не нужны, поэтому лучше их удалить.

- Задания выполняющиеся долгое время.

Иногда в самих скриптах пишут задания на выполнение чего-либо по расписанию (например в тех же mambot’ах в joomla). Если их можно перенести в планировщик (cron), то лучше это сделать через cron, так как такие задания в joomla выполняются вместе с запросами пользователей и тем самым замедляют загрузку сайта и увеличивают нагрузку, а в некоторых случаях сайт вовсе перестает загружаться.

Рассылки писем могут влиять на загрузку сайта, тем не менее они часто бывают необходимы и их так же лучше оптимизировать. Скрипт запуска рассылки можно добавить в планировщик (cron), как и в случае с mambot’ами в joomla. Управление планировщиком находится в и доступно при соответствующем тарифе. Запускать такие скрипты лучше во время наименьшей нагрузки, например ночное, когда на сайте меньше всего посетителей.

- Медленные или не оптимизированные запросы sql к базе данных.

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

- Большое количество запросов к серверу.

Старайтесь избегать лишних запросов. Запросы могут исходить не только от посетителей ваших сайтов, но и, например, от индексирующих ботов с поисковиков, sape и т.д, также увеличивается количество запросов при использовании большого количества url на файлы (изображения, js-скрипты, css-стили), которые загружаются через отдельные запросы (при включенном apache вместо nginx). По возможности, объединяйте их в один файл.

Также запросы могут исходить, например, от чата или какого-то участка, блока на сайте, который посылает ajax-запросы на сервер. Многие из нас любят открывать несколько вкладок в браузере - нужно учитывать, что от этого так же может увеличиваться количество запросов и соответственно процессов веб-сервера.

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

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

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

Конечно, все хотят недорогие тарифы, при этом про оптимальное расходование ресурсов многие просто забывают.
На WebHOST1 разработаны оптимальные тарифы и нужно просто подобрать необходимый для вас тариф, что можно осуществить самостоятельно в биллинге.

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

Ошибка 504 - 504 Gateway time-out

Этот код ответа означает, что клиентский запрос nginx передал apache, а apache не смог в установленный лимит времени вернуть HTTP-ответ?, в рузультате сервер разрывает сетевое соединение по таймауту. Причиной может быть долгая работа процесса - сценария, запущенного скриптом веб-сайта.

Можно попробовать увеличить выделенное время для php, прописав в корне сайта в файл.htaccess код:

# время выполнения скрипта - сценария php_value max_execution_time 60 # время загрузки данных php_value max_input_time 60 Однако это не избавит от таймаута веб-сервера с 504 ошибкой. Таймаут веб-сервера в рамках виртуального хостинга изменить не представляется возможным.



Рекомендуем почитать

Наверх