CÓMO CONFIGURAR NGINX COMO BALANCEADOR DE CARGA
Para configurar Nginx como balanceador de carga, hay que crear el fichero "/nginx/sites-available/load-balancer.cnf", se puede llamar "load-balancer.cnf" o como se quiera, pero se aconseja que sea descriptivo.Pasos para crear el load balancer
- Crear el archivo:
/nginx/sites-available/load-balancer.cnf - Añadir la configuración:
http { # Definición de los servidores internos (el "pool") upstream backend_servers { # Por defecto usa Round Robin (uno a uno) server 192.168.1.10:8080; server 192.168.1.11:8080; server 192.168.1.12:8080; } server { listen 80; server_name tusitio.com; location / { # Redirige el tráfico al grupo definido arriba proxy_pass http(s)://backend_servers; # Cabeceras importantes para que el backend vea la IP real del usuario proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } - Activar la configuración creando el enlace simbólico, suponiendo que estamos en Linux:
sudo ln -s /etc/nginx/sites-available/load-balancer /etc/nginx/sites-enabled/ - Eliminar el sitio por defecto, si no se usa:
sudo rm /etc/nginx/sites-enabled/default - Verificar que todo es correcto:
sudo nginx -t - Aplicar los cambios:
sudo systemctl reload nginx
Métodos de Balanceo Comunes
Se puede ajustar cómo se reparte la carga añadiendo una directiva dentro de "upstream":- Round Robin: Es el predeterminado distribuyendo las peticiones en orden secuencial.
- least_conn: Envía la petición al servidor con menos conexiones activas. Ideal para procesos largos.
- ip_hash: Asegura que un cliente vaya siempre al mismo servidor (útil para gestionar sesiones/carrito de compras).
- Weights: Se le puede dar más prioridad a un servidor potente: "server 192.168.1.10 weight=3;": Significa que recibirá el triple de tráfico que los demás.