Balanceador de carga con HAProxy [HTTP+HTTPS] [Debian 9]

⌛ Lectura estimada: 3 minutos

¿Qué es un balanceador de carga? ¿Para que se utiliza? ¿Es seguro?

En este artículo vamos a responder estas dudas y vamos a aprender cómo configurar un balanceador de carga en debian 9. Para ello necesitamos tres máquinas. Una que hará de HAproxy y dos servidores webs para hacer la simulación.

Pero… ¿que és un balanceador de carga?

Según wikipedia:

Un Balanceador de carga fundamentalmente es un dispositivo de hardware o software que se pone al frente de un conjunto de servidores que atienden una aplicación y, tal como su nombre lo indica, asigna o balancea las solicitudes que llegan de los clientes a los servidores usando algún algoritmo (desde un simple round-robin hasta algoritmos más sofisticados).1

Básicamente lo que hace es redrigir las solicitudes de un servidor a otro, para garantizar disponibilidad. En el caso de los servidores web para garantizar el acceso a datos e información.

 

Bien, vamos a proceder con la instalación de haproxy:

Instalamos el paquete:

# apt install -y haproxy

Editamos el archivo de configuración.

# vi /etc/haproxy/haproxy.cfg

Añadimos las siguientes líneas al final del archivo:

frontend http_front
bind *:80
bind *:443 ssl crt /etc/ssl/private/haproxy2.pem
stats uri /haproxy?stats
default_backend http_back

backend http_back
balance roundrobin
server debian 192.168.56.103:80 check
server debian 192.168.56.101:80 check

listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy\ Statistics
stats auth debian:austria

 

En el frontend vamos a escuchar las peticiones, en este caso por HTTP (80) y HTTPS (443 *posteriormente generaremos el certificado).

Haproxy tiene un portal web para observar las máquinas. Se accede mediante la 192.168.56.x:8181, y es por eso que definimos listen stats.

En el backend es donde tendremos nuestras máquinas escuchando por el puerto 80. Recordemos que la encriptación por https ya la hacemos en el frontend. También pondremos el tipo de algoritmo, en mi caso roundrobin.

Roundrobin es un algoritmo de planificación de procesos más simples dentro de un sistema operativo que asigna a cada proceso una porción de tiempo equitativa y ordenada.

Una vez tenemos el archivo de configuración completado, guardamos y salimos.

:wq

Instalamos apache en el servidor HAProxy.

# apt install -y apache2

Accedemos a la carpeta de certificados y creamos uno:

# cd /etc/ssl/private

# openssl req -x509 -nodes -newkey rsa:2048 -keyout haproxy2.pem -out haproxy.pem -days 365

Generemos el certificado:

 

Esto nos habrá generado una clave “haproxy2.pem”.

Una vez hecho esto, vamos a instalar apache en los dos servidores web.

# apt install apache2

Modificamos el index.html para ver los cambios (balanceo de carga)

# sed -i ‘s/It works!/SERVIDOR 1/g’ /var/www/html/index.html

# sed -i ‘s/It works!/SERVIDOR 2/g’ /var/www/html/index.html

Reiniciamos el servidor web.

# systemctl restart apache2

Reiniciamos HAProxy

# systemctl restart haproxy

Y ya lo tenemos configurado! ¿Fácil verdad?

Vídeo demostrativo:

Deja un comentario

Su dirección de correo electrónico no será publicada. Campos necesarios *