Resolver perfectamente el tiempo de espera de la puerta de enlace Nginx 504

  
                  

dedecms de reciente construcción de un sitio web con una gran cantidad de nuevos contenidos, hay tres columnas de la cantidad de contenido de más de dos mil, más de dos mil trescientos dos columnas en la lista de columnas se genera cuando se han producido 504 de puerta de enlace se utiliza el servidor nginx tiempo de espera, yo no entiendo muy bien, el personal de mantenimiento del servidor en Internet sólo para encontrar un artículo, modificar la configuración de caché nginx, no importa, él no importa, pero no puedo, no importa ah, no puede generar la lista páginas que no utilizan la parte posterior del contenido no es todavía?

la base de datos descargado en el local de nginx, configurada localmente, intentado muchas veces no funcionan, Apache ha cambiado también a la siguiente, más exagerada, generada 83 páginas no pueden continuar, parece que nginx es aún más poderoso, aunque hay 504 tiempos de espera de Gateway, pero se puede generar completamente.

no tenía más remedio que seguir para encontrar más soluciones en Internet, intente N veces más tarde, finalmente encontró una manera útil de pensar en el futuro también puede encontrar este problema, puesto que El artículo se copia aquí para referencia futura, y también es útil para los amigos que tienen el mismo problema.

La siguiente parte es la parte de referencia. No conozco la tecnología por mí misma. Es útil en mis dedecms5.6. Deje que otros la prueben.


Nginx 502 Pasarela incorrecta es el significado de la solicitud de PHP-CGI ha sido ejecutado, pero por alguna razón (por lo general leer el tema de los recursos) no se ha completado el proceso resulta en PHP-CGI termina.

Tiempo de espera de la puerta de enlace Nginx 504 significa que la puerta de enlace solicitada no la solicita. En pocas palabras, no hay ninguna solicitud para que se ejecute PHP-CGI.

a resolver estos dos problemas es en realidad una necesidad de un pensamiento integral, en general, Nginx 502 Pasarela incorrecta configuración y php-fpm.conf, mientras que Nginx 504 Pasarela fuera se ajusta con el nginx.conf Relacionados.

Y la configuración correcta debe tener en cuenta varios factores, como el rendimiento del propio servidor y el número de visitantes.

Tomando como ejemplo mi servidor actual, la CPU es un sistema CENTOS de 1.5G, 1GB de memoria, los visitantes son aproximadamente 50 personas en línea al mismo tiempo.

Pero en línea APN tendrá que solicitar PHP-CGI procesar una gran cantidad de información, por lo que será establecido nginx.conf:

fastcgi_connect_timeout 300s;

fastcgi_send_timeout 300s;

fastcgi_read_timeout 300s;

fastcgi_buffer_size 128k;

fastcgi_buffers 8 128k; # 8 128

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

fastcgi_intercept_errors on;

Los ajustes más importantes aquí son los tres primeros, a saber,

fastcgi_connect_timeout 300s;

fastcgi_send_timeout 300s;

fastcgi_read_timeout 300s;

Esto especifica el tiempo para que PHP-CGI se conecte, envíe y lea. 300 segundos son suficientes, por lo que mi servidor rara vez tiene el error 504 Gateway Time-out. La más crítica es la configuración de php-fpm.conf, que conduce directamente a 502 Bad Gateway y 504 Gateway Time-out.

Vamos a echar un vistazo más de cerca a varios parámetros importantes php-fpm.conf:

php-fpm.conf hay dos parámetros críticos, uno es "max_children", otro uno es el
"request_terminate_timeout"

mis dos valores es un conjunto de "40", uno de ellos es "900", pero este valor no es universal, pero necesita sus propios cálculos.

calculada de la siguiente manera:
sistema de circuito

Si el rendimiento del servidor es lo suficientemente bueno, y los recursos de banda ancha suficiente, script PHP no lo hace o error, entonces se puede directamente "request_terminate_timeout" ajustado a 0s. El significado de 0s es permitir que PHP-CGI continúe ejecutándose sin límite de tiempo. Y si no se puede hacer esto, que su PHP-CGI puede aparecer un fallo, o su banda ancha insuficiente u otras causas de su PHP-CGI pueden fingir la muerte entonces le sugiero que das "request_terminate_timeout" Fu Un valor que se puede establecer en función del rendimiento de su servidor. En general, cuanto mejor es el rendimiento, más alto puede establecer, de 20 minutos a 30 minutos. Debido a que mi script PHP del servidor necesita ejecutarse durante mucho tiempo, algunos pueden exceder los 10 minutos, por lo que establezco 900 segundos, lo que no causará que PHP-CGI muera y 502 Error de puerta de enlace.

Los "max_children" Esta es la forma de calcular el valor de ella? En principio, este valor es el más grande es el proceso php-cgi mejor procesada más rápidamente, en cola peticiones rara vez . Ajustes "max_children" deben establecerse de acuerdo con el rendimiento del servidor, cada uno de los php-cgi general, una memoria del servidor consume normalmente unos 20 metros, por lo que "max_children" Me puse a 40, 20M * 40 = 800M significa que en el pico, todo PHP-CGI consume menos de 800M, que es más bajo que mi memoria efectiva de 1Gb. Y si mi entorno "max_children" es pequeño, tal como 5-10, entonces el PHP-CGI "cansado", la velocidad de proceso es muy lento, el tiempo de espera es más larga. Si no se ha solicitado un largo tiempo de tratamiento será produce 504 de error de puerta de enlace de tiempo de espera, y cansado de esos pocos php-cgi se está procesando Si experimenta problemas serán 502 Mala puerta de entrada a este error.

Copyright © Conocimiento de Windows All Rights Reserved