Cela précise la connexion, l’envoi et la lecture de PHP-CGIHeure, 300 secondes suffisent, donc la mienneserveurLes 504 apparaissent rarementGatewayErreur de temps mort. La chose la plus importante estPHP-FPM.ConférencedeInstaller, ce qui mènera directement à 502 Bad Gateway et 504 Gateway Time-Out.
Jetons un coup d’œil plus attentif à quelques parties importantes de php-fpm.confparamètre:
php-fpm.conf a deux paramètres cruciaux, l’un est « max_children » et l’autre « request_terminate_timeout »
J’ai deux réglages avec des valeurs de « 40 » et « 900 », mais cette valeur n’est pas universelle, elle doit être calculée par moi-même.
Voici comment cela se calcule :
Si c’est le tienServiceInstrumentperformanceAssez bien, et les ressources haut débit sont suffisantes, PHPScénarioS’il n’y a pas de boucles ou de bugs, vous pouvez simplement mettre le « request_terminate_timeout » à 0. 0s signifie que PHP-CGI fonctionne en permanence sans limite de temps. Si vous ne pouvez pas faire cela, c’est-à-dire que votre PHP-CGI peut avoir un certain bug, ou que votre bande passante n’est pas suffisante ou que d’autres raisons font que votre PHP-CGI simule une mort, il est recommandé d’attribuer une valeur à « request_terminate_timeout », qui peut être définie en fonction des performances de votre serveur. En général, plus la performance est bonne, plus on peut la régler haut, 20 minutes à 30 minutes, c’est correct. Comme mes scripts PHP serveur prennent beaucoup de temps à s’exécuter, certains peuvent prendre plus de 10 minutes, donc je les ai réglés à 900 secondes pour éviter que le PHP-CGI ne tombe en pause et n’affiche pas l’erreur 502 Bad Gateway.
Et comment la valeur de « max_children » est-elle calculée ? En principe, plus c’est grand, mieux c’est, php-cgiProcessusS’il y en a d’autres, ils seront traités rapidement, et il y aura peu de demandes dans la file d’attente. max_children De manière générale, dans des circonstances normales, un serveur consomme environ 20 M de mémoire par php-CGI, donc je règle mon « max_children » à 40, 20M*40=800M, ce qui signifie que tout le PHP-CGI consommait moins de 800M au pic, ce qui est inférieur à ma mémoire effective de 1 Go. Et si mon « max_children » est réglé plus petit, par exemple 5-10, alors le php-CGI sera « très fatigant », la vitesse de traitement est aussi très lente, et le temps d’attente est plus long. Si la requête n’a pas été traitée depuis longtemps, l’erreur de délai de passage 504 apparaîtra, et le php-CGI en cours de traitement rencontrera une erreur 502 Bad Gateway s’il rencontre des problèmes.
|