Nginx + PHP-FPM 502 Bad Gateway

Я получаю 502 Bad Gateway от Nginx в строке PHP-кода, который отлично работает в других местах моей программы ($this->provider = new OAuthProvider();), и это отлично работало раньше. Это сообщение, которое я получаю в журнале ошибок Nginx для каждого 502:

recv() не удалось (104: Соединение reset на одноранговом узле) при чтении заголовка ответа вверх по течению

В журнале PHP-FPM есть предупреждение для каждого 502:

[ПРЕДУПРЕЖДЕНИЕ] [пул www] ребенок 17427 вышел из сигнала 11 SIGSEGV после 142070.657176 секунд с начала

После нескольких изменений в nginx.conf я застрял и очень ценю любые указатели на то, что делать дальше.

Я запускаю Nginx 0.7.67 и PHP 5.3.2 на Ubuntu 10.04.

Ответ 2

Ваш PHP-процесс разбился с помощью segfault ( "сигнал 11 SIGSEGV" ), что заставило Nginx увидеть "соединение reset по peer" (PHP - это "peer" в этом случае, а Nginx говорит вам "Посмотрите, он повесил трубку на меня, прежде чем я смог получить от него ответ" ).

Просмотрите страницу базы данных PHP Bug на как сообщить об ошибке, которую кто-то захочет исправить, чтобы узнать, как получить обратную линию segfault, чтобы вы могли сообщить об этом.

Ответ 3

У меня была та же проблема с APC. поэтому я удалил его и вместо этого установил eaccelerator. пока не проблема.

Ответ 4

У меня были схожие проблемы с nginx/lighttpd + php-fcgi (с использованием spawn-fcgi), используете ли вы какой-то кеш-код для php? То, что я нашел довольно давно, это то, что xcache вызывал странное поведение в php-fcgi, некоторые процессы php-fcgi случайно умерли, я не смог найти какой-либо шаблон. Я бы порекомендовал взглянуть на настройки apc (или другого кода операции), если вы используете их. Прямо сейчас я использую nginx + php-fpm на freebsd и не имею проблем.

Ответ 5

ZendOptimizer + APC + php-fpm 5.2.14 дает постоянно воспроизводимый SIGSEGV даже на phpinfo();.

Ответ 6

Попробуйте отключить сухосин. Иногда это приводит к сбою Apache.