nekompletní stánka vydaná pomocí nginx -> fcgi -> php-fpm s keepalive on rubrika: Administrace: Software

7 Ondra42
položil/-a 31.1.2013

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í?

odkaz Vyřešeno
7 Ondra42
odpověděl/-a 31.1.2013

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.