nekompletní stánka vydaná pomocí nginx -> fcgi -> php-fpm s keepalive on rubrika: Administrace: Software
Ahoj, občas se nám stává, že Nginx vrací nekompletní stránky. PHP vývojáři jsou v tom nevinně a problém je někde po cestě. Zkoušeli jsme Wiresharkem koukat na předávaná data a PHP-FPM pošle Nginxu celou stránku. Ovšem Nginx dál pošle poye část. Velikost oddělené části je stejná jako označený chunk v přenosu z PHP-FPM. Pro jednoduchou ukázku problému je test ke stažení. Stačí mít nainstalovaný nginx a php-fpm .
http://kinohled.cz/bugreport.tar.gz
Když test rozbalíte, tak stačí pustit ./ShowBug.sh a uvidíte:
Run Nginx on port 9876 Run php-fpm on port 6789 Correct size of answer is 16172; keepalive on, size: 8002 keepalive off, size: 16172 Next test (1 of 5)- ...
Testováno na Debian Squeezy a mnoha verzích Nginxu a PHP-FPM . Pro jednoduchost mužete použít balíčky z dotdeb.org.
nginx/1.2.6 PHP 5.3.21-1~dotdeb.0
V logu Nginxu je hláška:
upstream sent unsupported FastCGI protocol version: 0 while reading upstream
Ale ta nám vůbec nepomohla. :(
Pokud máte Nginx a PHP-FPM s keepalive on, tak máte pravděpodobně stejnej problém.
Nějaké návrhy na řešení?
Tento patch pomuze:
http://mdounin.ru/temp/patch-nginx-fastcgi-keepalive.txt
Dekuji Maxim Dounin za pohotovou pomoc.
http://forum.nginx.org/read.php?2,235764,235776#msg-235776
Pro plný přístup na Devel.cz se prosím přihlaste:
Nebo se přihlaste jménem a heslem: