Specifikuje spojení, odesílání a čtení PHP-CGIČas, 300 sekund stačí, takže mojeServer504 se objevují jen zřídkaBránaChyba v časovém limitu. Nejdůležitější jephp-fpm.confzUstavit, což přímo povede k 502 Bad Gateway a 504 Gateway Time-out.
Podívejme se blíže na některé důležité části php-fpm.confparametr:
php-fpm.conf má dva klíčové parametry, jeden je "max_children" a druhý "request_terminate_timeout".
Mám dvě nastavení s hodnotami "40" a "900", ale tato hodnota není univerzální, musím ji vypočítat sám.
Takto se to počítá:
Pokud je tvůjSlužbaNástrojpředstaveníStačí a širokopásmové zdroje jsou dostatečné, PHPScénářPokud nejsou žádné smyčky nebo chyby, můžete prostě nastavit "request_terminate_timeout" na nuly. 0 znamená, že PHP-CGI běží neustále bez časového limitu. Pokud to nedokážete, tedy pokud má vaše PHP-CGI určitou chybu, nebo vaše šířka pásma není dostatečná, nebo jiné důvody způsobují, že vaše PHP-CGI předstírá smrt, doporučuje se přiřadit hodnotu "request_terminate_timeout", kterou lze nastavit podle výkonu vašeho serveru. Obecně platí, že čím lepší výkon, tím vyšší ho můžete nastavit, 20 minut až 30 minut je v pořádku. Protože mé serverové PHP skripty běží dlouho, některé mohou trvat déle než 10 minut, takže jsem nastavil na 900 sekund, aby PHP-CGI nepřestalo fungovat a nedostalo se chyba 502 Bad gateway.
A jak se vypočítává hodnota "max_children"? V zásadě platí, že čím větší, tím lepší, php-cgiProcesPokud jich bude víc, bude rychle zpracován a ve frontě bude jen málo požadavků. max_children Obecně platí, že za normálních okolností server spotřebuje asi 20M paměti na php-CGI, takže nastavím "max_children" na 40, 20M*40=800M, což znamená, že veškeré PHP-CGI spotřebovává méně než 800M v době špičky, což je méně než moje efektivní paměť 1Gb. A pokud mám "max_children" nastavené menší, například 5-10, pak je php-cgi "velmi únavné", rychlost zpracování je také velmi pomalá a čekací doba je delší. Pokud požadavek nebyl dlouho zpracován, objeví se chyba 504 Gateway Time-out a zpracovávané php-cgi narazí na chybu 502 Bad gateway, pokud narazí na problémy.
|