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

  1. Crear el archivo:

    /nginx/sites-available/load-balancer.cnf
    
  2. 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;
    }
    }
    }
    
  3. 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/
    
  4. Eliminar el sitio por defecto, si no se usa:

    sudo rm /etc/nginx/sites-enabled/default
    
  5. Verificar que todo es correcto:

    sudo nginx -t
    
  6. 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":
  1. Round Robin: Es el predeterminado distribuyendo las peticiones en orden secuencial.
  2. least_conn: Envía la petición al servidor con menos conexiones activas. Ideal para procesos largos.
  3. ip_hash: Asegura que un cliente vaya siempre al mismo servidor (útil para gestionar sesiones/carrito de compras).
  4. 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.