Dit specificeert de verbinding, verzending en het lezen van PHP-CGITijd, 300 seconden is genoeg, dus de mijneserver504's verschijnen zeldenGatewayTime-out fout. Het belangrijkste isphp-FPM.confvanOprichten, wat direct leidt tot 502 Bad Gateway en 504 Gateway Time-out.
Laten we eens nader kijken naar enkele belangrijke onderdelen van php-fpm.confparameter:
php-fpm.conf heeft twee cruciale parameters: één is "max_children" en de andere is "request_terminate_timeout"
Ik heb twee instellingen met waarden van "40" en "900", maar deze waarde is niet universeel, maar moet ik zelf berekenen.
Zo wordt het berekend:
Als die van jouDienstInstrumentvoorstellingGoed genoeg, en de breedbandbronnen zijn voldoende, PHPScriptAls er geen lussen of bugs zijn, kun je gewoon de "request_terminate_timeout" op 0 zetten. 0's betekent dat PHP-CGI continu draait zonder tijdslimiet. Als je dit niet kunt doen, dat wil zeggen je PHP-CGI kan een bepaalde bug hebben, of je bandbreedte niet genoeg is of andere redenen ervoor zorgen dat je PHP-CGI doet alsof je doodgaat, dan wordt aanbevolen een waarde toe te kennen aan "request_terminate_timeout", die je kunt instellen op basis van de prestaties van je server. Over het algemeen geldt: hoe beter de prestatie, hoe hoger je het kunt zetten, 20 minuten tot 30 minuten is prima. Omdat mijn server-PHP-scripts lang duren om te draaien, kunnen sommige langer dan 10 minuten duren, dus heb ik het op 900 seconden gezet zodat PHP-CGI niet doodgaat en de 502 Bad gateway-fout wordt veroorzaakt.
En hoe wordt de waarde van "max_children" berekend? In principe geldt: hoe groter hoe beter, php-cgiProcesAls er meer zijn, wordt het snel verwerkt en zullen er weinig verzoeken in de wachtrij staan. max_children Over het algemeen verbruikt een server onder normale omstandigheden ongeveer 20M geheugen per php-cgi, dus stel ik mijn "max_children" in op 40, 20M*40=800M, wat betekent dat alle PHP-CGI minder dan 800M verbruikte tijdens piektijden, wat lager is dan mijn effectieve geheugen van 1Gb. En als mijn "max_children" kleiner staat, zoals 5-10, dan zal php-cgi "erg vermoeiend" zijn, de verwerkingssnelheid ook erg traag en de wachttijd langer. Als het verzoek lange tijd niet is verwerkt, verschijnt de 504 Gateway Time-out fout, en de php-cgi die wordt verwerkt zal een 502 Bad gateway-fout ondervinden als er problemen zijn.
|