Dette spesifiserer tilkobling, sending og lesing av PHP-CGITid, 300 sekunder er nok, så minServer504-er dukker sjelden oppGatewayTime-out-feil. Det viktigste erphp-FPM.konferanseavDefinere, som direkte vil føre til 502 Bad Gateway og 504 Gateway Time-out.
La oss ta en nærmere titt på noen viktige deler av php-fpm.confparameter:
php-fpm.conf har to avgjørende parametere, én er «max_children» og én er «request_terminate_timeout»
Jeg har to innstillinger med verdiene "40" og "900", men denne verdien er ikke universell, men må beregnes av meg selv.
Slik beregnes det:
Hvis dinTjenesteInstrumentprestasjonGodt nok, og bredbåndsressursene er tilstrekkelige, PHPManusHvis det ikke er løkker eller feil, kan du bare sette "request_terminate_timeout" til 0. 0s betyr at PHP-CGI kjører hele tiden uten tidsbegrensning. Hvis du ikke kan gjøre dette, det vil si at PHP-CGI-en din kan ha en viss feil, båndbredden din ikke er nok, eller andre grunner gjør at PHP-CGI-en later som den dør, anbefales det at du tildeler en verdi til "request_terminate_timeout", som kan settes etter serverens ytelse. Generelt sett, jo bedre ytelsen er, jo høyere kan du stille den, 20–30 minutter er greit. Siden serverens PHP-skript tar lang tid å kjøre, kan noen ta mer enn 10 minutter, så jeg satte det til 900 sekunder slik at det ikke fører til at PHP-CGI dør og får 502 Bad gateway-feilen.
Og hvordan beregnes verdien av «max_children»? I prinsippet, jo større jo bedre, php-cgiProsessHvis det er flere, vil det bli behandlet raskt, og det vil være få forespørsler i køen. max_children Generelt, under normale omstendigheter, bruker en server omtrent 20 millioner minne per php-cgi, så jeg satte min «max_children» til 40, 20M*40=800M, noe som betyr at all PHP-CGI brukte mindre enn 800 millioner på topp, noe som er lavere enn min effektive hukommelse på 1 GB. Og hvis min "max_children" er satt mindre, som 5-10, vil php-cgi være "veldig slitsomt", prosesseringshastigheten er også veldig treg, og ventetiden er lengre. Hvis forespørselen ikke har blitt behandlet på lenge, vil 504 Gateway Time-out-feilen dukke opp, og php-cgi-en som behandles vil oppleve en 502 Bad gateway-feil hvis den støter på problemer.
|