Cómo ajustar nginx keepalive_timeout?

12

Estoy usando nginx junto con php-fpm para el servidor de un sitio ocupado basado en mysql. Actualmente estoy usando keepalive_timeout = 5, sin embargo, no tengo una idea clara sobre cómo ajustarlo de manera óptima. Así que aprecio tus pistas.

Alfish
fuente

Respuestas:

10

¿Qué necesita ajustar para hacer, o más bien: está viendo algún problema para que establezca cómo lo hace?

No hay una buena respuesta única para todos; si la mayoría de los navegadores de clientes pueden cargar todos los recursos en una página en 5 segundos, entonces 5 segundos está bien, pero depende completamente de las necesidades de su aplicación, por ejemplo, si su servidor nginx servía como proxy inverso para Exchange ActiveSync, querrás que se ponga en marcha hasta media hora.

Shane Madden
fuente
Bueno, estoy tratando de minimizar la carga del servidor (que es bastante alta en los momentos de selección), y supongo que la optimización de keepalive_timeout puede contribuir parcialmente a este objetivo. Aparte de eso, es solo una sana curiosidad :)
alfish
1
Claro, por lo tanto, "lo más bajo posible sin sacar a la mayoría de los clientes antes de que carguen la página", así que si sus páginas se cargan en menos de un segundo para la mayoría de sus clientes, entonces un tiempo de espera de 1 segundo estará bien. Pero, a menos que su tiempo de espera sea mucho, mucho más alto que 5 segundos, es poco probable que sea una causa importante de carga del servidor.
Shane Madden
Ese es el punto complicado. ¿Cómo puedo determinar el tiempo de carga de la página, dada la diferencia en el tiempo de carga de las páginas (algunas son más pesadas que otras), las velocidades de conexión de los visitantes, etc.
alfish
Solo juega. Es poco probable que unos segundos de una forma u otra hagan una diferencia sustancial en la carga, así que siéntase libre de estimar alto, pero, de nuevo, una nueva compilación de una conexión TCP (incluso con un protocolo de enlace SSL, si corresponde) para un cliente de carga lenta no va a hacer una gran diferencia en su velocidad de carga general.
Shane Madden
1
@ShaneMadden, esos 5 segundos no son la vida útil de la conexión, sino solo un tiempo de espera durante el cual el servidor espera otra solicitud hasta keepalive_requests. Por lo tanto, no es importante cuánto tiempo lleva cargar la página completa, solo el html hasta que el navegador comience a buscar imágenes / css ... Por cierto, el máximo. la conexión de tiempo se mantiene abierta es casikeepalive_timeout*keepalive_requests
Marki555