To špecifikuje spojenie, odosielanie a čítanie PHP-CGIČas, 300 sekúnd stačí, takže mojaServer504 sa objavujú len zriedkaBránaChyba v časovom limite. Najdôležitejšie jephp-fpm.confzPripraviť, čo priamo povedie k 502 Bad Gateway a 504 Gateway Time-out.
Pozrime sa bližšie na niektoré dôležité časti php-fpm.confparameter:
php-fpm.conf má dva kľúčové parametre, jeden je "max_children" a druhý je "request_terminate_timeout"
Mám dve nastavenia s hodnotami "40" a "900", ale táto hodnota nie je univerzálna, musím si ju vypočítať sám.
Takto sa to počíta:
Ak je tvojSlužbaNástrojvýkonDostatočne dobré a širokopásmové zdroje sú dostatočné, PHPScenárAk nie sú žiadne slučky alebo chyby, môžete jednoducho nastaviť "request_terminate_timeout" na 0. Nuly znamenajú, že PHP-CGI beží neustále bez časového limitu. Ak to nedokážete, teda ak vaše PHP-CGI môže mať určitú chybu, alebo vaša šírka pásma nie je dostatočná alebo iné dôvody spôsobujú, že vaše PHP-CGI predstiera, odporúča sa priradiť hodnotu "request_terminate_timeout", ktorú môžete nastaviť podľa výkonu vášho servera. Vo všeobecnosti platí, že čím lepší výkon, tým vyššie ho môžete nastaviť, 20 minút - 30 minút je v poriadku. Keďže moje serverové PHP skripty bežia dlho, niektoré môžu trvať viac ako 10 minút, takže som nastavil na 900 sekúnd, aby to nespôsobilo zánik PHP-CGI a nedostal chybu 502 Bad gateway.
A ako sa počíta hodnota "max_children"? V princípe platí, že čím väčšie, tým lepšie, php-cgiProcesAk ich bude viac, bude to spracované rýchlo a v rade bude len málo požiadaviek. max_children Vo všeobecnosti, za normálnych okolností server spotrebuje približne 20M pamäte na php-CGI, preto nastavujem "max_children" na 40, 20M*40=800M, čo znamená, že všetko PHP-CGI spotrebovalo menej ako 800M v čase špičky, čo je menej ako moja efektívna pamäť 1Gb. A ak mám nastavený "max_children" menší, napríklad 5-10, potom php-cgi bude "veľmi únavné", rýchlosť spracovania je tiež veľmi pomalá a čakacia doba dlhšia. Ak požiadavka nebola spracovaná dlhý čas, objaví sa chyba 504 Gateway Time-out a spracovávané php-cgi narazí na chybu 502 Bad gateway, ak narazí na problémy.
|