Esto especifica la conexión, envío y lectura de PHP-CGIHora, 300 segundos son suficientes, así que la míaServidorLos 504 rara vez aparecenPuerta de entradaError de tiempo muerto. Lo más importante esPHP-FPM.ConferenciadeConstruir, lo que conducirá directamente a 502 Bad Gateway y 504 Gateway Time-out.
Echemos un vistazo más de cerca a algunas partes importantes de php-fpm.confparámetro:
php-fpm.conf tiene dos parámetros cruciales: uno es "max_children" y el otro es "request_terminate_timeout"
Tengo dos configuraciones con valores de "40" y "900", pero este valor no es universal, aunque debe calcularlo yo mismo.
Así es como se calcula:
Si es tuyoServicioInstrumentorendimientoSuficiente, y los recursos de banda ancha son suficientes, PHPGuiónSi no hay bucles ni bugs, puedes simplemente poner el "request_terminate_timeout" a cero. Los 0s significan que PHP-CGI se ejecuta todo el tiempo sin límite de tiempo. Si no puedes hacer esto, es decir, tu PHP-CGI puede tener un bug concreto, o tu ancho de banda no es suficiente o otras razones hacen que tu PHP-CGI finja la muerte, entonces se recomienda asignar un valor a "request_terminate_timeout", que puede configurarse según el rendimiento de tu servidor. En general, cuanto mejor es el rendimiento, más alto puedes ajustarlo; 20 minutos - 30 minutos está bien. Como mis scripts PHP de servidor tardan mucho en ejecutarse, algunos pueden ser más de 10 minutos, así que lo configuro a 900 segundos para que no se muera el PHP-CGI y no aparezca el error 502 Bad Gateway.
¿Y cómo se calcula el valor de "max_children"? En principio, cuanto más grande, mejor, php-cgiProcesoSi hay más, se procesará rápidamente y habrá pocas solicitudes en la cola. max_children En términos generales, en circunstancias normales, un servidor consume unos 20M de memoria por php-CGI, así que pongo mi "max_children" en 40, 20M*40=800M, lo que significa que todo el PHP-CGI consumió menos de 800M en el momento pico, que es menos que mi memoria efectiva de 1Gb. Y si mi "max_children" está configurado más pequeño, como 5-10, entonces php-CGI será "muy cansado", la velocidad de procesamiento también es muy lenta y el tiempo de espera es más largo. Si la solicitud no se ha procesado durante mucho tiempo, aparecerá el error de tiempo de espera del gateway 504, y el php-cgi que se está procesando encontrará un error de gateway malo 502 si presenta problemas.
|