Cómo usar Nginx como un balanceador de carga HTTP en Linux

Cómo usar Nginx como un balanceador de carga HTTP en Linux

Cuando se trata de configurar varios servidores de aplicaciones para la redundancia, el equilibrio de carga es un mecanismo de uso común para distribuir de manera eficiente las solicitudes de servicio entrantes o el tráfico de red a través de un grupo de servidores back-end.

El equilibrio de carga ha varias ventajas, incluida una mayor disponibilidad de las aplicaciones a través de la redundancia, mayor confiabilidad y escalabilidad (se pueden agregar más servidores a la mezcla cuando aumenta el tráfico). También brinda un rendimiento mejorado de la aplicación y muchos otros beneficios.

Lectura recomendada. la guía definitiva para proteger, fortalecer y mejorar el rendimiento del servidor web Nginx

Nginx. se puede implementar como un equilibrador de carga HTTP. eficiente para distribuir el tráfico de red entrante y la carga de trabajo entre un grupo de servidores de aplicaciones, en cada caso devolviendo la respuesta del servidor seleccionado al cliente apropiado.

Los métodos de equilibrio de carga admitidos por Nginx. son:

  • round-robin. que distribuye las solicitudes a los servidores de aplicaciones de forma rotatoria. Se utiliza de forma predeterminada cuando no se especifica ningún método,
  • menos conectado. asigna la siguiente solicitud a un servidor menos ocupado (el servidor con la menor cantidad de conexiones activas),
  • ip-hash. donde se utiliza una función hash para determinar qué servidor debe seleccionarse para la siguiente solicitud en función de la dirección IP del cliente. Este método permite la persistencia de la sesión (vincular un cliente a un servidor de aplicaciones en particular).

freestar.config.enabled_slots.push

Además, puede utilizar los pesos del servidor para influir en los algoritmos de equilibrio de carga de Nginx. a un nivel más avanzado. Nginx. también admite comprobaciones de estado para marcar un servidor como fallido (durante un período de tiempo configurable, el valor predeterminado es 10. segundos) si su respuesta falla con un error, por lo que evita seleccionarlo. servidor para solicitudes entrantes posteriores durante algún tiempo.

Esta guía práctica muestra cómo usar Nginx. como un balanceador de carga HTTP. para distribuir las solicitudes de clientes entrantes entre dos cada uno de los servidores tiene una instancia de la misma aplicación.

Con fines de prueba, cada instancia de aplicación está etiquetada. (en la interfaz de usuario) para indicar el servidor en el que se está ejecutando.

Configuración del entorno de prueba Load Balancer: 192.168.58.7 Servidor de aplicaciones 1: 192.168.58.5 Servidor de aplicaciones 2: 192.168.58.8

En cada servidor de aplicaciones, cada instancia de aplicación está configurada para ser accedida usando el dominio tecmintapp.lan. Suponiendo que este es un dominio completamente registrado, agregaríamos lo siguiente en la configuración de DNS.

Un registro @ 192.168.58.7

Este registro le dice a las solicitudes del cliente a dónde debe dirigirse el dominio, en este caso, el equilibrador de carga. ( 192.168.58.7. . Los registros DNS A solo aceptan valores IPv4. Alternativamente, el archivo /etc/hosts. en las máquinas cliente también se puede usar con fines de prueba, con la siguiente entrada.

192.168.58.7 tecmintapp.lan

Configuración del equilibrio de carga de Nginx en Linux

Antes de configurar el equilibrio de carga de Nginx, debe instalar Nginx. en su servidor usando el administrador de paquetes predeterminado para su distribución como se muestra.

$ sudo apt install nginx [En Debian/Ubuntu. $ sudo yum install nginx [En CentOS/RHEL.

A continuación, cree un archivo de bloque de servidor llamado/etc/nginx/conf.d/loadbalancer.conf (dé un nombre de su elección).

$ sudo vi/etc/nginx/conf.d/loadbalancer.conf

Luego copie y pegue la siguiente configuración en él. Esta configuración por defecto es round-robin ya que no se define ningún método de balanceo de carga.

backend ascendente servidor 192.168.58.5; servidor 192.168.58.8; servidor listen 80 default_server; escuchar [::]: 80 default_server; nombre_servidor tecmintapp.lan; ubicación/proxy_redirect off; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Fordered-For $ proxy_add_x_fordered_for; proxy_set_header Host $ http_host; proxy_pass http://backend;

En la configuración anterior, la directiva proxy_pass (que debe especificarse dentro de una ubicación,/en este caso) se usa para pasar una solicitud a los servidores proxy HTTP a los que se hace referencia usando la palabra backend, en el upstream directiva. (utilizada para definir un grupo de servidores). Además, las solicitudes se distribuirán entre los servidores mediante un mecanismo de equilibrio ponderado por turnos.

Para emplear el mecanismo de conexión mínima, utilice la siguiente configuración

backend ascendente Less_conn; servidor 192.168.58.5; servidor 192.168.58.8;

Y para habilitar el mecanismo de persistencia de la sesión ip_hash, use:

backend ascendente ip_hash; servidor 192.168.58.5; servidor 192.168.58.8;

También puede influir en la decisión de equilibrio de carga utilizando pesos. del servidor. Con la siguiente configuración, si hay seis solicitudes de clientes, al servidor de aplicaciones 192.168.58.5. se le asignarán 4 solicitudes y 2 pasarán a 192.168.58.8.

backend ascendente servidor 192.168.58.5 peso = 4; servidor 192.168.58.8;

Guarde el archivo y salga de él. Luego, asegúrese de que la estructura de configuración de Nginx sea correcta después de agregar los cambios recientes, ejecutando el siguiente comando.

$ sudo nginx-t

Si la configuración es correcta, reinicie y habilite el servicio Nginx para aplicar los cambios.

$ sudo systemctl restart nginx $ sudo systemctl enable nginx

Prueba del equilibrio de carga de Nginx en Linux

Para probar el equilibrio de carga de Nginx. abra un navegador web y use el siguiente dirección para navegar.

http://tecmintapp.lan

Una vez que se cargue la interfaz del sitio web, tome nota de la instancia de la aplicación que se ha cargado. Luego actualice continuamente la página. En algún momento, la aplicación debe cargarse desde el segundo servidor, lo que indica el equilibrio de carga.

Verifique el balanceo de carga de Nginx en Linux  Verifique el ancho del balanceo de carga de Nginx en Linux Comprobar el equilibrio de carga de Nginx en Linux

Acaba de aprender a configurar Nginx. como un equilibrador de carga HTTP en Linux. Nos gustaría conocer su opinión sobre esta guía, y especialmente sobre el empleo de Nginx como equilibrador de carga, a través del formulario de comentarios a continuación. Para obtener más información, consulte la documentación de Nginx sobre el uso de Nginx como un balanceador de carga HTTP.

Leave a comment

Your email address will not be published. Required fields are marked *