Balanceo de Carga L7 y Edge Proxy
Access via SSH from the default terminal. The cluster topology is defined below:
# Management & Controller
10.0.0.15 terminal # Main Entry Point
# Web & Application Tier
10.0.0.60 web-srv1 # Nginx / Apache
10.0.0.70 app-srv1 # Backend App
# Data Persistence Tier
10.0.0.80 data-001 # Primary DB
10.0.0.90 data-002 # Replica / Backup
# Virtualization & Containers
10.0.0.100 kvm-001 # Libvirt Hypervisor
10.0.0.110 docker-001 # Container Runtime
terminal to target IPs.
📋 Requisitos de Ingeniería
Sección titulada «📋 Requisitos de Ingeniería»Contexto de Negocio:
Las aplicaciones internas legacy alojadas en web-server01 están expuestas actualmente en puertos no estándar (1111, 2222), complicando las reglas de firewall y el acceso del cliente. Se requiere una solución de Proxy Reverso para estandarizar el acceso vía HTTP.
Objetivos Técnicos:
- Nodo Objetivo:
web-server01(10.0.0.60). - Redirección de Tráfico (Puerto 8001):
- El tráfico entrante debe ser reenviado a la ruta backend específica:
http://127.0.0.1:2222/special.
- El tráfico entrante debe ser reenviado a la ruta backend específica:
- Balanceo de Carga (Puerto 8000):
- Distribuir tráfico entre App A (
:1111) y App B (:2222). - Algoritmo: Round Robin (Por defecto) o Random.
- Distribuir tráfico entre App A (
🔧 Procedimiento de Implementación
Sección titulada «🔧 Procedimiento de Implementación»-
Acceso al Nodo Objetivo
Establezca una conexión segura al servidor web desde el host bastión.
Ventana de terminal ssh web-server01 -
Verificar Salud del Backend
Asegúrese de que las aplicaciones upstream están operativas antes de configurar el proxy.
Ventana de terminal curl -I http://127.0.0.1:1111curl -I http://127.0.0.1:2222 -
Definir Configuración del Proxy
Cree un archivo de configuración modular en
/etc/nginx/conf.d/. Evite editarnginx.confdirectamente.Ventana de terminal sudo vim /etc/nginx/conf.d/loadbalancer.confImplemente el siguiente bloque para definir el grupo upstream y los contextos server:
/etc/nginx/conf.d/loadbalancer.conf # 1. Definir Grupo Upstream (Balanceador)upstream backend_apps {server 127.0.0.1:1111;server 127.0.0.1:2222;}# 2. Tarea: Balanceador de Carga (Puerto 8000)server {listen 8000;server_name localhost;location / {proxy_pass http://backend_apps;}}# 3. Tarea: Redirección/Proxy (Puerto 8001)server {listen 8001;server_name localhost;location / {proxy_pass http://127.0.0.1:2222/special;}} -
Validar y Recargar
Realice una comprobación de sintaxis para prevenir caídas del servicio, luego recargue la señal del proceso.
Ventana de terminal sudo nginx -tsudo systemctl reload nginx -
Verificación Funcional
Probar Balanceador (8000): Ejecute múltiples peticiones. Las respuestas deben alternar entre backends.
Ventana de terminal for i in {1..4}; do curl http://localhost:8000; echo; doneProbar Redirección (8001):
Ventana de terminal curl -v http://localhost:8001
🔍 Diagnóstico y Resolución
Sección titulada «🔍 Diagnóstico y Resolución»- Connection Refused: Asegúrese de que Nginx está escuchando en los nuevos puertos:
Ventana de terminal ss -tulpn | grep nginx - 502 Bad Gateway: Indica que Nginx no puede alcanzar los puertos upstream (1111/2222). Verifique si las apps backend han caído.