Las verificaciones de salud son una característica esencial en la configuración de un proxy inverso y balanceador de carga. Permiten a NGINX determinar si los servidores backend están disponibles y funcionando correctamente. Esto asegura que el tráfico solo se dirija a servidores que están en buen estado, mejorando la disponibilidad y la fiabilidad del servicio.
Conceptos Clave
- Verificación de Salud Activa: NGINX envía solicitudes periódicas a los servidores backend para verificar su estado.
- Verificación de Salud Pasiva: NGINX monitorea las respuestas de los servidores backend a las solicitudes de los clientes y marca los servidores como inactivos si detecta errores.
- Configuración de Verificaciones de Salud: Definir los parámetros y condiciones bajo los cuales NGINX considera que un servidor está saludable o no.
Configuración de Verificaciones de Salud Activa
Para configurar verificaciones de salud activa en NGINX, se utiliza el módulo ngx_http_upstream_hc_module
. A continuación, se muestra un ejemplo de configuración básica:
http { upstream backend { server backend1.example.com; server backend2.example.com; # Configuración de verificación de salud activa health_check interval=5s fails=3 passes=2; } server { location / { proxy_pass http://backend; } } }
Explicación del Código
upstream backend { ... }
: Define un grupo de servidores backend.server backend1.example.com;
yserver backend2.example.com;
: Lista de servidores backend.health_check interval=5s fails=3 passes=2;
: Configura la verificación de salud activa.interval=5s
: NGINX enviará una solicitud de verificación de salud cada 5 segundos.fails=3
: Si un servidor falla 3 verificaciones consecutivas, será marcado como inactivo.passes=2
: Si un servidor pasa 2 verificaciones consecutivas después de haber sido marcado como inactivo, será marcado como activo nuevamente.
Configuración de Verificaciones de Salud Pasiva
Las verificaciones de salud pasiva no requieren configuración adicional, ya que NGINX las realiza automáticamente. Sin embargo, se pueden ajustar ciertos parámetros para controlar cómo NGINX maneja los errores de los servidores backend.
http { upstream backend { server backend1.example.com; server backend2.example.com; # Configuración de verificación de salud pasiva proxy_next_upstream error timeout http_500 http_502 http_503 http_504; } server { location / { proxy_pass http://backend; } } }
Explicación del Código
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
: Define las condiciones bajo las cuales NGINX considerará que un servidor backend ha fallado y pasará la solicitud al siguiente servidor disponible.error
: Errores de conexión.timeout
: Tiempo de espera agotado.http_500
,http_502
,http_503
,http_504
: Códigos de estado HTTP que indican errores del servidor.
Ejercicio Práctico
Ejercicio 1: Configuración de Verificación de Salud Activa
- Configura un grupo de servidores backend con verificaciones de salud activa.
- Define un intervalo de verificación de 10 segundos.
- Marca un servidor como inactivo después de 2 fallos consecutivos.
- Marca un servidor como activo después de 1 verificación exitosa.
http { upstream backend { server backend1.example.com; server backend2.example.com; # Configuración de verificación de salud activa health_check interval=10s fails=2 passes=1; } server { location / { proxy_pass http://backend; } } }
Ejercicio 2: Configuración de Verificación de Salud Pasiva
- Configura un grupo de servidores backend.
- Define las condiciones para considerar un servidor como fallido en base a los códigos de estado HTTP 500, 502, 503 y 504.
http { upstream backend { server backend1.example.com; server backend2.example.com; # Configuración de verificación de salud pasiva proxy_next_upstream error timeout http_500 http_502 http_503 http_504; } server { location / { proxy_pass http://backend; } } }
Resumen
En esta sección, hemos aprendido sobre las verificaciones de salud en NGINX, tanto activas como pasivas. Las verificaciones de salud son cruciales para asegurar que el tráfico solo se dirija a servidores backend que están funcionando correctamente. Hemos visto cómo configurar estas verificaciones y hemos practicado con ejemplos prácticos. En el próximo módulo, exploraremos prácticas básicas de seguridad para proteger nuestro servidor NGINX.
Curso de NGINX
Módulo 1: Introducción a NGINX
Módulo 2: NGINX como Servidor Web
- Sirviendo Contenido Estático
- Listados de Directorios
- Páginas de Error Personalizadas
- Registro y Formatos de Registro
Módulo 3: NGINX como Proxy Inverso
- Introducción al Proxy Inverso
- Configurando un Proxy Inverso
- Balanceo de Carga
- Verificaciones de Salud