Volver a la página principal
viernes 8 noviembre 2024
13

Cómo configurar la monitorización de estado de salud en Nginx

La monitorización del estado de salud de los servidores en Nginx permite verificar de forma continua el estado de los servidores back-end, lo cual es crucial en entornos de balanceo de carga para garantizar la disponibilidad y estabilidad de los servicios. Esta función permite que Nginx desactive temporalmente servidores que no responden adecuadamente y redirija el tráfico solo a servidores activos.

¿Qué es la monitorización de estado de salud en Nginx?

La monitorización de estado de salud en Nginx permite configurar verificaciones periódicas en los servidores a los que distribuye el tráfico. Estas verificaciones permiten identificar si un servidor responde correctamente y cumple con los requisitos de disponibilidad y rendimiento, evitando así enviar solicitudes a servidores inactivos o con fallas.

Requisitos

Para utilizar la monitorización de estado de salud en Nginx, es necesario contar con Nginx Plus, la versión comercial de Nginx, ya que esta función no está disponible en la versión gratuita de Nginx.

Configuración básica de monitorización de estado de salud

En Nginx Plus, la monitorización de estado de salud se configura mediante el bloque upstream y directivas específicas para determinar la frecuencia de las verificaciones y el tipo de respuesta esperado.

Ejemplo de configuración

http {
    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;

        # Activar verificación de estado de salud
        health_check interval=5s fails=3 passes=2;
    }

    server {
        location / {
            proxy_pass http://backend_servers;
        }
    }
}

En este ejemplo:

  • interval=5s: Realiza una verificación cada 5 segundos.
  • fails=3: Desactiva un servidor si falla 3 veces consecutivas.
  • passes=2: Reactiva un servidor si pasa 2 verificaciones consecutivas.

Parámetros de monitorización de estado de salud en Nginx Plus

Parámetro Tipo Descripción
interval=<tiempo> Tiempo Intervalo entre verificaciones. Valores típicos: 5s, 10s, 30s.
fails=<n> Entero Número de fallos consecutivos necesarios para desactivar un servidor.
passes=<n> Entero Número de verificaciones exitosas consecutivas necesarias para reactivar un servidor.
uri=<ruta> Cadena Ruta específica para realizar la verificación (por defecto /).
timeout=<tiempo> Tiempo Tiempo de espera máximo para recibir una respuesta del servidor.
match=<condición> String Define una condición específica para las respuestas, como códigos de estado o contenido esperado.

Ejemplos adicionales de configuración

1. Verificación en una ruta específica:

health_check uri=/status interval=10s fails=3 passes=2;

2. Configuración con tiempo de espera:

health_check interval=5s fails=2 passes=1 timeout=2s;

3. Verificación con coincidencia de contenido:

match is_healthy {
       status 200;
       header Content-Type = application/json;
       body ~ "status: healthy";
   }

   health_check match=is_healthy interval=5s;

Referencias

Para obtener más información sobre la configuración de la monitorización de estado de salud, visita la documentación oficial de Nginx Plus.

Etiquetas:
nginx
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer