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.confy añada la siguiente configuración:Copy to Clipboard Copied! Toggle word wrap Toggle overflow La directiva
least_connen el grupo de hosts llamadobackenddefine que NGINX envíe las peticiones aserver1.example.comoserver2.example.com, dependiendo del host que tenga el menor número de conexiones activas. NGINX utilizaserver3.example.comsolo como respaldo en caso de que los otros dos hosts no estén disponibles.Con la directiva
proxy_passestablecida enhttp://backend, NGINX actúa como un proxy inverso y utiliza el grupo de hostsbackendpara 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_hashpara 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. -
hashpara 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ámetroconsistentconfigura que NGINX distribuya las peticiones entre todos los servidores basándose en el valor de la clave hash definida por el usuario. -
randompara enviar solicitudes a un servidor seleccionado al azar.
Reinicie el servicio
nginx:systemctl restart nginx
# systemctl restart nginxCopy to Clipboard Copied! Toggle word wrap Toggle overflow