Dette specificerer forbindelse, afsendelse og læsning af PHP-CGITidspunkt, 300 sekunder er nok, så mitServer504'ere optræder sjældentGatewayTime-out-fejl. Det vigtigste erphp-FPM.konferenceafRejse, hvilket direkte fører til 502 Bad Gateway og 504 Gateway Time-out.
Lad os tage et nærmere kig på nogle vigtige dele af php-fpm.confparameter:
php-fpm.conf har to afgørende parametre, den ene er "max_children" og den anden er "request_terminate_timeout"
Jeg har to indstillinger med værdierne "40" og "900", men denne værdi er ikke universel, men skal beregnes af mig selv.
Sådan beregnes det:
Hvis dinTjenesteInstrumentpræstationGodt nok, og bredbåndsressourcerne er tilstrækkelige, PHPManuskriptHvis der ikke er nogen løkker eller fejl, kan du bare sætte "request_terminate_timeout" til 0'erne. 0'er betyder, at PHP-CGI kører hele tiden uden tidsbegrænsning. Hvis du ikke kan gøre dette, altså hvis din PHP-CGI kan have en bestemt fejl, eller din båndbredde ikke er tilstrækkelig, eller andre grunde får din PHP-CGI til at lade som om, du dør, anbefales det, at du tildeler en værdi til "request_terminate_timeout", som kan indstilles efter din servers ydeevne. Generelt gælder det, at jo bedre ydelsen er, jo højere kan du sætte den, 20 minutter - 30 minutter er fint. Da mine server-PHP-scripts tager lang tid at køre, kan nogle tage mere end 10 minutter, så jeg satte det til 900 sekunder, så det ikke får PHP-CGI til at dø og får 502 Bad gateway-fejlen.
Og hvordan beregnes værdien af "max_children"? I princippet gælder det, at jo større, jo bedre, php-cgiProcesHvis der er flere, vil det blive behandlet hurtigt, og der vil være få anmodninger i køen. max_children Generelt bruger en server under normale omstændigheder omkring 20 millioner hukommelse pr. php-cgi, så jeg sætter min "max_children" til 40, 20M*40=800M, hvilket betyder, at al PHP-CGI brugte mindre end 800 millioner på peak-tidspunktet, hvilket er lavere end min effektive hukommelse på 1 GB. Og hvis min "max_children" er sat mindre, som 5-10, så vil php-cgi være "meget trættende", behandlingshastigheden er også meget langsom, og ventetiden er længere. Hvis anmodningen ikke er blevet behandlet i lang tid, vil 504 Gateway Time-out-fejlen dukke op, og den php-cgi, der behandles, vil støde på en 502 Bad gateway-fejl, hvis den støder på problemer.
|