Red Hat Training

A Red Hat training course is available for RHEL 8

2.5. Configuración de NGINX como equilibrador de carga HTTP

Puede utilizar la función de proxy inverso de NGINX para equilibrar la carga del tráfico. Este procedimiento describe cómo configurar NGINX como un equilibrador de carga HTTP que envía las peticiones a diferentes servidores, basándose en cuál de ellos tiene el menor número de conexiones activas. Si ambos servidores no están disponibles, el procedimiento también define un tercer host por razones de fallback.

Requisitos previos

Procedimiento

  1. Edite el archivo /etc/nginx/nginx.conf y añada la siguiente configuración:

    http {
        upstream backend {
            least_conn;
            server server1.example.com;
            server server2.example.com;
            server server3.example.com backup;
        }
    
        server {
            location / {
                proxy_pass http://backend;
            }
        }
    }

    La directiva least_conn en el grupo de hosts llamado backend define que NGINX envíe las peticiones a server1.example.com o server2.example.com, dependiendo del host que tenga el menor número de conexiones activas. NGINX utiliza server3.example.com solo como respaldo en caso de que los otros dos hosts no estén disponibles.

    Con la directiva proxy_pass establecida en http://backend, NGINX actúa como un proxy inverso y utiliza el grupo de hosts backend para distribuir las peticiones basándose en la configuración de este grupo.

    En lugar del método de equilibrio de carga least_conn, puede especificar:

    • No hay método para utilizar round robin y distribuir las peticiones de manera uniforme entre los servidores.
    • ip_hash para enviar solicitudes de una dirección de cliente al mismo servidor basándose en un hash calculado a partir de los tres primeros octetos de la dirección IPv4 o de la dirección IPv6 completa del cliente.
    • hash para determinar el servidor basándose en una clave definida por el usuario, que puede ser una cadena, una variable o una combinación de ambas. El parámetro consistent configura que NGINX distribuya las peticiones entre todos los servidores basándose en el valor de la clave hash definida por el usuario.
    • random para enviar solicitudes a un servidor seleccionado al azar.
  2. Reinicie el servicio nginx:

    # systemctl restart nginx