Назад | Перейти на главную страницу

Nginx периодически выдает 502 на каждой странице при использовании fastcgi_finish_request ()

Недавно я унаследовал администрирование двух модулей Nginx в AWS и очень не знаком с тем, как работает PHP-FPM (и не работает). Недавно я интегрировал Keen.IO для бэкэнд-логирования пользователей, используя:

fastcgi_finish_request();

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

Однако сегодня, по мере роста трафика, мы начали получать 502 ошибки шлюза, и оба сервера имеют следующую ошибку:

[error] 2356#0: *70245 upstream sent unexpected FastCGI record: 3 while reading response header from upstream, client: (ADDRESS), server: igun-api-slaves.crimson-moon.com, request: "GET (Address)", upstream: "fastcgi://unix:/var/run/php-fpm/product1.socket:", host: "ADDRESS"

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

-- РЕДАКТИРОВАТЬ

Теперь в AWS Cloud Watch я вижу, что ошибки возникают с момента редактирования кода, а не только с момента создания трафика.

Сообщение журнала означает, что PHP-FPM отправляет идентификатор типа записи, который nginx не понимает. Оказывается, как вы уже догадались, тип записи 3 соответствует FCGI_END_REQUEST. Таким образом, может показаться, что поддержка FCGI в nginx является неполной, поскольку он не распознает и не обрабатывает этот тип записи.

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

Эта ошибка, по-видимому, вызвана ошибкой в ​​PHP, которая неправильно обрабатывает fastcgi_finish_request ()

https://bugs.php.net/bug.php?id=67583

Это можно обойти, пока не будет исправлено, отключив fastcgi_keep_conn в настройках Ngynx.