Configurar un Balanceador de Carga con HAProxy en Linux

En los entornos profesionales es imprescindible configurar la alta disponibilidad para que el usuario que utiliza el servicio nunca se dé cuenta de que ha habido una incidencia en alguno de los servidores (avería hardware, caída de un servidor, etc.).

Es habitual utilizar balanceadores de carga en servicios WEB, donde cada una de las peticiones se envía a un servidor WEB diferente para repartir el tráfico entre todos ellos con el objetivo de no saturar siempre el mismo servidor y para que, en caso de incidencia, las peticiones de los usuarios se sigan atendiendo en cualquier otra maquina con el servicio levantado.

Las grandes empresas suelen utilizar hardware dedicado para construir el servicio de balanceador, pero también podemos configurarlo por software. HAProxy es una de esas herramientas de software libre para configurar balanceadores de carga.

Instalación de HAProxy

Como ya sabéis, suelo utilizar RedHat o CentOS, así que vamos a instalar HAProxy en Linux CentOS 7. Para ello ejecutaremos el siguiente comando:

yum install haproxy

Una vez instalado, conviene realizar una copia de seguridad del fichero original del producto, por si metemos la pata cuando configuremos nuestros servicio. El fichero es: /etc/haproxy/haproxy.cfg.

Configuración de HAProxy

Supongamos que tenemos dos servidores WEB esuchando por las IPs:

  • 192.168.1.2:443
  • 192.168.1.3:443

Y queremos balancear la carga entre ambos servidores. En el fichero /etc/haproxy/haproxy.cfg, configuraremos las IPs y puertos por donde escuchan los servicios, en concreto, la sección listen:

listen ServidorWeb
    bind *:80
    mode http
    stats enable
    stats auth  cda:cda
    balance roundrobin
    server frontend-01 192.168.1.2:80 check weight 40
    server frontend-02 192.168.1.3:80 check weight 60

Como podemos ver en el ejemplo anterior, balanceamos el servicio por roundrobin y distribución de pesos en relación 40-60%. Roundrobin significa que una petición va a un servidor y la siguiente a otro (teniendo en cuenta la distribución de pesos).

Arranque de HAProxy

En el caso de Linux CentOS, arrancaremos y habilitaremos el servicio con el arranque del sistema con los siguientes comandos:

systemctl start haproxy
systemctl enable haproxy

Una vez que tenemos arrancado el servicio, podemos acceder a las estadísticas de balanceo con una URL interna de HAProxy, por ejemplo:

http://192.168.1.4:8080/stats

Te podría interesar

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author