Ошибка 502

Материал из DiPHOST.Ru wiki system

(Различия между версиями)
Перейти к: навигация, поиск
(Несоблюдение стандартов)
Строка 12: Строка 12:
Самая популярная ситуация на виртуальном хостинге.  
Самая популярная ситуация на виртуальном хостинге.  
 +
 +
У веб-сервера apache количество одновременных обработчиков фиксировано конфигурацией сервера. Если все обработчики заняты, то новые запросы не принимаются и становятся в очередь до истечения предела времени ожидания.Очередь запросов тоже имеет предел, который составляет 50 запросов на каждый веб-сервер apache. Если очередь заполнена, то новый запрос не принимается, nginx выдаёт ошибку 502 и закрывает соединение.
 +
 +
Возможные причины нехватки ресурсов:
 +
* если программное обеспечение сайта обращается к внешним ресурсам (например, скрипт сайта хочет получить значение некоего счётчика на другом сайте) без установки предела времени ожидания, то неполадки в сети или на внешнем ресурсе почти мгновенно приводят к ошибке 502;
 +
* на тарифе TINCO и ознакомительных WSGI-сайтах тарифа PARMA, где предусмотрен всего один обработчик, обращение из программного обеспечения сайта самого к себе (например, скрипт главной страницы хочет получить информацию из форума этого же сайта, обращаясь к нему) приводит к ошибке 502;
 +
* в случае загрузки файлов большого объёма этим занимается обработчик долгое время, это может привести к к эффекту торможения, а зачастую и ошибке 502;
 +
* возможны проблемы на сервере, в зоне ответственности хостера (нас, т.е.), приводящие к очень медленной работе веб-серверов apache, которые в итоге не успевают обработать поток запросов.
=== Несоблюдение стандартов ===
=== Несоблюдение стандартов ===

Версия 13:20, 28 апреля 2012

На нашем хостинге HTTP-запросы к сайтам идут через nginx, который пропускает их через себя к пользовательским веб-серверам apache (подробнее можно узнать в нашей статье Веб-система).

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

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

Нехватка ресурсов

Самая популярная ситуация на виртуальном хостинге.

У веб-сервера apache количество одновременных обработчиков фиксировано конфигурацией сервера. Если все обработчики заняты, то новые запросы не принимаются и становятся в очередь до истечения предела времени ожидания.Очередь запросов тоже имеет предел, который составляет 50 запросов на каждый веб-сервер apache. Если очередь заполнена, то новый запрос не принимается, nginx выдаёт ошибку 502 и закрывает соединение.

Возможные причины нехватки ресурсов:

  • если программное обеспечение сайта обращается к внешним ресурсам (например, скрипт сайта хочет получить значение некоего счётчика на другом сайте) без установки предела времени ожидания, то неполадки в сети или на внешнем ресурсе почти мгновенно приводят к ошибке 502;
  • на тарифе TINCO и ознакомительных WSGI-сайтах тарифа PARMA, где предусмотрен всего один обработчик, обращение из программного обеспечения сайта самого к себе (например, скрипт главной страницы хочет получить информацию из форума этого же сайта, обращаясь к нему) приводит к ошибке 502;
  • в случае загрузки файлов большого объёма этим занимается обработчик долгое время, это может привести к к эффекту торможения, а зачастую и ошибке 502;
  • возможны проблемы на сервере, в зоне ответственности хостера (нас, т.е.), приводящие к очень медленной работе веб-серверов apache, которые в итоге не успевают обработать поток запросов.

Несоблюдение стандартов

Некоторые популярные программы написаны без соблюдения стандартов. При этом nginx служит неким фильтром "битых" запросов, чтобы избавить от обработки их внутренний уровень веб-системы. При невозможности передать запрос к apache, nginx выдаёт ошибку 502. Например, магазин PrestaShop хранит много информации в так называемых cookie, которые передаются в заголовках HTTP-запросов. По стандарту, они не могут превышать 4Kb. Однако PrestaShop игнорирует это ограничение. При попытке передать запрос с размером заголовков более 4Kb к apache, nginx выдаёт ошибку 502. Ошибка обнаруживается только просмотром специальных журналов и устраняется установкой на страх и риск клиента конфигурации для сайта с "поправкой" на предел размера заголовков.

Ошибки PHP

Возможны ошибки различных расширений PHP, не связанные с синтаксисом языка или логикой работы расширений, когда обработчик просто "ломается" и ничего не отдаёт наружу. Для nginx это выглядит как внезапное закрытие соединения с apache и он считает это ошибкой. Выявить именно этот тип ошибки можно методом исключения - если статическое содержимое (картинки, файл robots.txt) нормально открывается, а обращение к скрипту выдаёт 502-ую ошибку - это скорее всего описанный случай.

Источник — «https://wiki.diphost.ru/Error502»
Личные инструменты
© 2006 — ООО «Дремучий лес»
Служба техподдержки: support@diphost.ru
Тексты этого сайта являются полностью оригинальными
или оригинальными компиляциями ООО «Дремучий Лес».
Распространяются по лицензии WTFPL
Отзывы о хостинге diphost.ru Отзывы на hostobzor.ru