¿Qué es HAProxy y para qué se utiliza?
HaProxy es un balanceador de carga (Load Balancer) de código abierto y un proxy inverso que se utiliza para difundir las solicitudes en múltiples servidores. Está escrito en C y es conocido por su velocidad y eficiencia. Se puede utilizar de forma gratuita en la mayoría de distribuciones de 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.
HAProxy es altamente configurable y podemos ajustarlo para que un servidor reciba un porcentaje de tráfico mayor que otro, por ejemplo, o desactivar el envío de tráfico a uno de los nodos. Esto viene muy bien en caso de avería, incidencia o intervención en algún servidor que no necesite recibir tráfico en un momento puntual.
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
- Configurar un servidor proxy en Android
- Configurar un servidor de DNS
- Configurar un balanceador de carga en Amazon AWS
Mi pasión por la tecnología me lleva constantemente a explorar las últimas tendencias y aplicaciones, buscando siempre formas de implementar soluciones innovadoras que mejoren la eficiencia. En puerto53.com comparto contenido valioso para ayudar a otros profesionales y entusiastas de la informática a navegar y dominar el complejo mundo de la tecnología. Mi especialidad en Linux RedHat.
Más sobre mí en el este enlace,