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
- NGINX se instala como se describe en Sección 2.1, “Instalación y preparación de NGINX”.
Procedimiento
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 llamadobackend
define que NGINX envíe las peticiones aserver1.example.com
oserver2.example.com
, dependiendo del host que tenga el menor número de conexiones activas. NGINX utilizaserver3.example.com
solo como respaldo en caso de que los otros dos hosts no estén disponibles.Con la directiva
proxy_pass
establecida enhttp://backend
, NGINX actúa como un proxy inverso y utiliza el grupo de hostsbackend
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ámetroconsistent
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.
Reinicie el servicio
nginx
:#
systemctl restart nginx