Ошибка 502 Bad Gateway nginx. Как исправить

Эта статья поможет разобраться, почему на сайтах время от времени появляется ошибка 502 Bad Gateway и как эту проблему решить.

Если эта ошибка возникает, значит HTTP-запросы от клиентов до вашего сайта идут через какой-то шлюз. Например, если на хостинге перед веб-сервером Apache стоит веб-сервер nginx, то nginx будет шлюзом.

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

Почему Apache не смог обработать запрос? Как это исправить?

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

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

Если команда top показывает, что память есть, возможно, дело в установленных лимитах на количество php-cgi процессов. Нужно смотреть конфигурационные файлы Apache (httpd.conf), особенно секцию модуля, отвечающего за FastCGI (mod_fascgi или mod_fastcgid).

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

Критические замечания к статье приветствуются.

Смотрите также

Комментарии

млин... непонятно.. объясните популярно, как исправить эту проблему

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

В большинстве случаев достаточно перезагрузить Апач, но если это не помогает, то проблема с инетом.

А если к серверу подключен 1 человек, а ошибка всё равно появляется,
причем без nginx'a всё работало?

мб, что-нибудь с конфигурацией энджинкса

У меня стоит опера и если выдает эту ошибку , просто включаю Опера-Турбо и все отлично грузится -)))

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

У меня была такая проблема, просто у меня слишком много мегабайт информации загружалось на главной странице, до 100 мб. и стала вылазить такая ошибка, ужал картинки, всё пошло нормально

М-да,никто меня не любит гляжу!

а это могут быть это ДДос атаки?

Да, такое бывает и при атаках.

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

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

Анализировать логи.

Я простой пользователь. Не является ли появление ошибки 502 - признаком индивидуального бана? Как вообще определить наличие бана, если никаких сообщений об оном не было

Если бан, то скорее будет 503

Как вариант - это так же может происходить из-за "Атаки ДДОС". Сегодня несколько раз натыкался на сайты, в которых присутствовали следующие строки:

"""2 Дня подряд сайт подвержен крупной Атаке ДДОС!
Атака на сайт может производиться с разными мотивами, но цель одна – вывести наш с вами сайт из нормального рабочего состояния .
Ведутся на данный момент работы по восстановлению работоспособности ресурса.
Нежайше просим нас понять и ... простить!
Возможна замедленная загрузка страниц, если страница не загрузилась, обновите!"""

Поставил для тестов WordPress и столкнулся такой проблемой:

WP версий 3.3 и 3.4
Nginx 1.2.2
Apache2 2.2.22
Ubuntu Server 11.04 64
MYSQL 5.1.63
PHP 5.3.5

Фронтпейдж открывается нормально, но при заходе в админку выдаётся ошибка, вынесенная в заголовки!

В момент ошибки, в логи заносится

[Sat Jul 07 21:27:09 2012] [notice] child pid 2634 exit signal Segmentation fault (11)

На том-же хостинге без проблема работает куча сайтов, в том числе и на тяжелом IPB 3.2!

Текущая загрузка сервера 0.03
Доступная память сервера 1434 MB

Что забавно, если включить в Опере турбо-режим, то в админку входт на ура!

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

Статья дает полную картину, инфа 100%

1. Либо настроен веб сервер криво
2. Либо меняйте хостинг/машину
:)

p.s. если висите на хостинге, меняйте хостинг либо тариф план.
другими словами - не хватает ресурсов обработать все запросы