Jack Wallen muestra cómo configurar el balanceo de carga básico en el servidor web de NGINX, para que su empresa pueda manejar un tráfico web más pesado.
Si su empresa depende del servidor web de NGINX, probablemente ha estado buscando una forma de configurar el balanceo de carga. Si no está seguro de qué es exactamente el balanceo de carga, dejaré esto aquí:
El balanceo de carga es un sistema que distribuye el tráfico de la red o de las aplicaciones a través de un número de servidores.
Por ejemplo, usted tiene su servidor web principal NGINX y quiere distribuir la carga entre dos o tres servidores NGINX más; al hacer esto, puede asegurarse de que no importa cuánto tráfico esté recibiendo, más de un servidor puede hacerse cargo de la carga. Claramente, sus sitios web (en cada servidor NGINX) tendrán que ser configurados de forma idéntica para que esto funcione (de lo contrario, usted estaría distribuyendo el tráfico entre diferentes sitios.
Dicho esto, voy a mostrarle lo fácil que es configurar NGINX para el balanceo de carga. Voy a hacer una demostración en Ubuntu Server 16.04, con tres servidores en direcciones IP:
- Servidor 1 – 192.168.1.232
- Servidor 2 – 192.168.1.233
- Servidor 3 – 192.168.1.234
Modificará la configuración para que se ajuste a su esquema de direcciones IP y a sus necesidades específicas (por ejemplo, si desea distribuir entre más servidores. Asumiré que ya tiene NGINX funcionando en cada servidor.
Vamos a trabajar.
VER: Kit de contratación: Administrador de MongoDB (Tech Pro Research)
Configuración inicial
Voy con lo absolutamente básico. Para demostrar cómo funciona esto, crearé un nuevo index.html en el directorio /var/www/html de cada servidor, con el contenido:
<h1>SERVICIO DE MOTORES Y</h1>
Donde Y es 1, 2, 3 (dependiendo del servidor en el que se encuentre el archivo.
Con eso en su lugar, vamos a configurar NGINX.
VEA: 20 consejos rápidos para hacer más fácil el trabajo en red con Linux (ConsejoTecnologico.com)
Configuración
Vamos a crear un nuevo archivo para configurar el balanceo de carga sólo en el SERVIDOR 1. Emita el comando sudo nano /etc/nginx/conf.d/load-balancer.conf. En ese archivo, copie el siguiente contenido:
# Este servidor acepta todo el tráfico al puerto 80 y lo pasa al servidor upstream { listen 80; location / { proxy_pass http://backend; }} Este servidor acepta todo el tráfico al puerto 80 y lo pasa al servidor upstream.
NOTA: Asegúrese de configurar el archivo anterior con su esquema de direcciones IP. También puede agregar tantos servidores como sea necesario para el balanceo de carga.
Guarde y cierre ese archivo.
En nuestro sistema Ubuntu, tenemos que eliminar el enlace simbólico a predeterminado, en la carpeta /etc/nginx/sites-enabled. Haga esto con el comando:
sudo rm /etc/nginx/sites-enabled/default
Reinicie NGINX con el comando:
sudo systemctl reiniciar nginx
Pruebas
Si apunta un navegador a la dirección IP del Servidor 1 (en nuestro caso 192.168.1.232), el balanceo de carga comenzará a redondear las peticiones a los servidores de NGINX en las otras direcciones, configuradas dentro del archivo load-balancer.conf. Su primera llamada a la dirección IP del Servidor 1 lo llevará al Servidor 2 y la siguiente al Servidor 3 (y así sucesivamente.
Una advertencia
El sistema de balanceo de carga por defecto es el round robin. Esto puede causar problemas con la persistencia de la sesión. Si sus sitios web/aplicaciones requieren que los usuarios sean dirigidos al mismo servidor utilizado en la sesión anterior, se debe utilizar el hash de IP. Con el hash IP en su lugar, un usuario siempre será dirigido al mismo servidor (siempre y cuando el servidor esté disponible.
Para configurar el hashing IP, abra el archivo /etc/nginx/conf.d/load-balancer.conf y añada la línea ip_hash; debajo del backend aguas arriba {. Ese nuevo archivo se vería como:
# Definir qué servidores incluir en el esquema de balanceo de carga.upstream backend { ip_hash; servidor 192.168.1.232; servidor 192.168.1.233; servidor 192.168.1.234;}# Este servidor acepta todo el tráfico al puerto 80 y lo pasa al servidor upstream.server { listen 80; location / { proxy_pass http://backend; }}.
Guarde y cierre ese archivo. Reinicie NGINX con el comando:
sudo systemctl reiniciar nginx
Ahora si apunta su navegador a la dirección IP del Servidor 1 y pulsa refrescar, será enviado al mismo servidor.
Simple y eficaz
Así de fácil es configurar el balanceo de carga básico con NGINX. Hay otros trucos que puedes usar con este sistema; pero, por el momento, ahora tienes múltiples servidores que pueden equilibrar la carga de tu sitio web o aplicación web. La próxima vez, hablaremos sobre la definición del peso del servidor y el equilibrio de carga HTTPS.
Boletín de noticias de Data Center Trends
DevOps, virtualización, la nube híbrida, el almacenamiento y la eficiencia operativa son sólo algunos de los temas del centro de datos que destacaremos. Entregado Lunes y Miércoles