Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
fastcgi keep conn on и fastcgi finish request() в PHP
- To: nginx-ru@xxxxxxxxx
- Subject: fastcgi keep conn on и fastcgi finish request() в PHP
- From: "S.A.N" <nginx-forum@xxxxxxxx>
- Date: Sat, 15 Feb 2014 15:36:18 -0500
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=selenium.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=4AOrGVGQxZbu/wXWw+Pxmk50mvTW1A2gfIybmY1caFM=; b=h1eN9ufZzuXojFF0mxDpk6LegtxpfT44BMqvYcX0BowSkJrSg6mP8SfM6K7f4esnthxIATa8MpwvrwVzmojbbYBBQPkPlpyjCrTwF/uKGPrrxQzGUFWzqiFlsPDHqPGTxKzhr9gvcTGssXgol8yUt80tBK+H0IHJHE/KfcZMCKo=;
При включенном keepalive в upstream к FastCGI бекенду на PHP, появляются
ошибки 502, проблему нашли и воспроизводится она таким образом.
РНР скрипт, медленные операции выполняет в фон режиме после вызова функции
fastcgi_finish_request(), тестовый скрипт
<?php
ignore_user_abort();
fastcgi_finish_request();
sleep(10);
?>
конфигурация Nginx
upstream fpm
{
server 127.0.0.1:9000;
keepalive 8;
}
server
{
......
fastcgi_keep_conn on;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_pass fpm;
......
}
Лог ошибки Nginx
[error] 7945#0: *5 upstream sent unexpected FastCGI record: 3 while reading
response header from upstream ...
Лог ошибок PHP-FPM пустой.
В upstreem кеше 8 конектов, ошибка появляется когда Nginx ждет от PHP-FPM
ответа в конекте который ещё не освободился, по моей логике PHP-FPM должен
ответить Nginx когда скрипт завершит работу (sleep(10)) но этого не
происходит и Nginx отдает 502 ошибку, судя по всему PHP-FPM после
освобождения конекта не смог обработать следующий запрос от Nginx в этом
конекте, подозреваю что функции fastcgi_finish_request() не рассчитана на
повторное использования конекта.
Или я что-то делаю не правильно?
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,247596,247596#msg-247596
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|