To določa povezavo, pošiljanje in branje PHP-CGIČas, 300 sekund je dovolj, zato mojstrežnik504 se redko pojavijoPrehodNapaka pri izteku časa. Najpomembnejše jephp-FPM.confodPripraviti, kar bo neposredno vodilo do 502 Bad Gateway in 504 Gateway Time-Out.
Poglejmo si podrobneje nekatere pomembne dele php-fpm.confparameter:
php-fpm.conf ima dva ključna parametra, eden je "max_children" in drugi "request_terminate_timeout".
Imam dve nastavitvi z vrednostmi "40" in "900", vendar ta vrednost ni univerzalna, ampak jo moram izračunati sam.
Tako se izračuna:
Če je tvojaSlužbaInštrumentpredstavaDovolj dobro, in širokopasovni viri so zadostni, PHPScenarijČe ni zank ali hroščev, lahko preprosto nastavite "request_terminate_timeout" na 0. 0 pomeni, da PHP-CGI teče ves čas brez časovne omejitve. Če tega ne morete storiti, torej če ima vaš PHP-CGI določeno napako, ali vaša pasovna širina ni zadostna ali pa drugi razlogi povzročijo, da vaš PHP-CGI lažno umre, je priporočljivo, da dodelite vrednost "request_terminate_timeout", ki jo lahko nastavite glede na zmogljivost vašega strežnika. Na splošno velja, da boljši kot je nastop, višje ga lahko nastaviš, 20 do 30 minut je v redu. Ker moji strežniški PHP skripti trajajo dolgo, nekatere trajajo več kot 10 minut, zato sem nastavil na 900 sekund, da PHP-CGI ne umre in ne dobi napake 502 Bad gateway.
In kako se izračuna vrednost "max_children"? V načelu, večje je bolje, php-cgiPostopekČe jih je več, bo hitro obdelan in v čakalni vrsti bo malo zahtevkov. max_children Na splošno strežnik v običajnih okoliščinah porabi približno 20M pomnilnika na php-CGI, zato nastavim "max_children" na 40, 20M*40=800M, kar pomeni, da je ves PHP-CGI v času največje moči porabil manj kot 800M, kar je manj od mojega efektivnega pomnilnika 1Gb. In če je moj "max_children" nastavljen manjši, na primer 5-10, bo php-cgi "zelo naporen", hitrost obdelave je prav tako zelo počasna, čas čakanja pa daljši. Če zahteva dolgo časa ni bila obdelana, se bo pojavila napaka 504 Gateway Time-out, in php-cgi, ki se obdeluje, bo naletel na napako 502 Bad gateway, če bo naletel na težave.
|