Así como los controles regulares con un médico son una parte importante para mantenerse saludable, los controles regulares de la salud de sus aplicaciones son fundamentales para un rendimiento confiable. Al realizar proxy inverso y equilibrar la carga del tráfico, NGINX utiliza controles de estado pasivos para proteger a los usuarios de su aplicação de interrupciones al desviar automáticamente el tráfico de los servidores que no responden a las solicitudes. NGINX Plus agrega controles de estado activos , enviando sondas especiales que pueden detectar servidores en mal estado incluso antes de que no puedan procesar una solicitud. ¿Qué tipo de comprobación de estado tiene sentido para sus aplicações? En este post te damos la información que necesitas para tomar esa decisión.
En el sentido más básico, una comprobación del estado es un método para determinar si un servidor es capaz de manejar el tráfico. NGINX utiliza controles de estado para monitorear los servidores para los cuales realiza el proxy inverso o equilibra la carga del tráfico (lo que denomina servidores ascendentes) .
Las comprobaciones de estado pasivas, disponibles tanto en NGINX Open Source como en NGINX Plus, se basan en observar cómo se comporta el servidor mientras maneja las conexiones y el tráfico. Ayudan a evitar que los usuarios experimenten cortes de servicio debido a tiempos de espera del servidor, porque cuando NGINX descubre que un servidor no está en buen estado, reenvía inmediatamente la solicitud a un servidor diferente, deja de enviar solicitudes al servidor no en buen estado y distribuye las solicitudes futuras entre los servidores en buen estado restantes en el grupo ascendente.
Tenga en cuenta que las comprobaciones de estado pasivas solo son efectivas cuando el grupo ascendente está definido para tener varios miembros. Cuando solo se define un servidor ascendente, nunca se marca como no disponible y los usuarios ven una interrupción cuando no funciona correctamente.
A continuación se muestra una descripción detallada de cómo funcionan los controles de salud pasivos, pero salte a los controles de salud activos si no le interesa.
De manera predeterminada, NGINX considera que un servidor TCP/UDP (transmisión) no está en buen estado si hay un solo error o tiempo de espera al establecer una conexión con él.
NGINX considera que un servidor HTTP no está en buen estado si hay un solo error o tiempo de espera al establecer una conexión con él, al pasarle una solicitud o al leer el encabezado de respuesta (no recibir ninguna respuesta cuenta como este tipo de error). Puede utilizar la directiva proxy_next_upstream
para personalizar estas condiciones para el proxy HTTP , y existe una directiva paralela para los protocolos FastCGI , gRPC , memcached , SCGI , TCP/UDP y uwsgi .
Tanto para HTTP como para TCP/UDP, NGINX espera diez segundos predeterminados antes de intentar nuevamente conectarse y enviar una solicitud a un servidor no operativo. Puede utilizar el parámetro fail_timeout
en la directiva del servidor
[ HTTP ][ Stream ] para cambiar esta cantidad de tiempo.
Puede utilizar el parámetro max_fails
en la directiva del servidor
para aumentar la cantidad de errores o tiempos de espera que deben ocurrir para que NGINX considere que el servidor no está en buen estado; en este caso, el parámetro fail_timeout
establece el período durante el cual debe ocurrir esa cantidad de errores o tiempos de espera, así como también el tiempo que NGINX espera para volver a intentar el servidor después de marcarlo como no en buen estado.
Los controles de salud activos, que son exclusivos de NGINX Plus, son solicitudes especiales que se envían periódicamente a los puntos finales de la aplicação para garantizar que respondan correctamente. Son independientes y adicionales a los controles de salud pasivos. Por ejemplo, NGINX Plus podría enviar una solicitud HTTP periódica al servidor web de la aplicación para garantizar que responda con un código de respuesta válido y el contenido correcto. Los controles de salud activos permiten la monitorización continua del estado de componentes y procesos específicos de la aplicação . Constituye una medición directa de la disponibilidad de la aplicação , aunque eso depende de cuán representativa sea la comprobación de estado especificada de la salud general de la aplicação .
Puede personalizar muchos aspectos de un control de salud activo; consulte Casos de uso para controles de salud activos .
Los controles de salud pasivos son una apuesta segura. Es una buena práctica para cada equipo de desarrollo de aplicação , DevOps, DevSecOps y Platform Ops ejecutar controles de estado pasivos como parte de su programa de monitoreo de la infraestructura de producción. NGINX ejecuta controles de estado pasivos en el tráfico con equilibrio de carga de forma predeterminada, incluidas las configuraciones HTTP, TCP y UDP.
Las ventajas de los controles de salud pasivos incluyen:
upstream{}
Las ventajas de NGINX Open Source son el costo (ninguna, obviamente), la capacidad de configuración y una amplia biblioteca de módulos de terceros. Como el código fuente está disponible, los desarrolladores pueden modificar y ampliar la funcionalidad para adaptarla a sus necesidades específicas.
Para muchas aplicações (y sus desarrolladores) los controles de estado pasivos son suficientes. Por ejemplo, los controles de estado activos pueden ser excesivos para los microservicios que no están orientados a los clientes y realizan tareas más pequeñas. De manera similar, es posible que no sean necesarios para aplicações en las que el almacenamiento en caché puede reducir las posibilidades de problemas de latencia o las redes de distribución de contenido (CDN) pueden hacerse cargo de algunas de las tareas de la aplicação . En resumen, los controles de salud pasivos por sí solos son mejores para:
En el caso de aplicações de misión crítica, los controles de estado activos suelen ser cruciales porque los clientes y los procesos clave se ven afectados directamente por los problemas. Con estas aplicações, es fundamental probar la aplicação básicamente como lo hace el cliente o consumidor de la aplicação , y eso requiere controles de estado activos. Los controles de estado activos son similares a las herramientas de monitoreo del rendimiento de las aplicação , como New Relic y AppDynamics, que utilizan controles fuera de banda para medir la latencia y las respuestas de las aplicação . Para realizar comprobaciones de salud activas, NGINX Plus incluye una serie de características y capacidades que no están incluidas en NGINX Open Source:
Con controles de estado activos, los desarrolladores pueden configurar NGINX Plus para detectar automáticamente cuando un servidor backend está inactivo o experimenta problemas, y luego dirigir el tráfico a servidores en buen estado hasta que se solucione el problema. La mayor capacidad de configuración de los controles de estado activos permite realizar controles de estado más sofisticados, posiblemente detectando problemas de aplicação antes de que afecten a los usuarios reales de la aplicação . Esto puede minimizar el tiempo de inactividad y evitar interrupciones en el acceso de los usuarios a la aplicação.
Las comprobaciones de estado pasivas están habilitadas de forma predeterminada, pero puede personalizar su frecuencia y la cantidad de fallas que ocurren antes de que un servicio se marque como no saludable, como se describe en Cómo funcionan las comprobaciones de estado pasivas . Para obtener instrucciones de configuración completas para las comprobaciones de estado pasivas y activas, consulte nuestra documentación:
Los controles de salud son una parte importante para mantener cualquier aplicação de producción funcionando sin problemas y con capacidad de respuesta. Son la mejor manera de detectar problemas e identificar fuentes crecientes de latencia antes de que afecten a los usuarios finales. Para muchas aplicações, los controles de salud pasivos son suficientes.
Para aplicações más críticas, donde se necesita información directa sobre el comportamiento de las aplicação a nivel de usuario, es mejor utilizar verificaciones activas. NGINX Open Source es de uso gratuito y proporciona controles de estado pasivos configurables. NGINX Plus ofrece capacidades avanzadas de verificación de estado activo, así como soporte comercial.
¿Quieres probar los controles de salud activos con NGINX Plus? Comience hoy su prueba gratuita de 30 días o contáctenos para analizar sus casos de uso .
"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.