Cómo instalar HAProxy en Debian 11

HAProxy es una solución gratuita, de código abierto y fiable para la alta disponibilidad y el equilibrio de carga. Distribuye la carga entre los múltiples servidores de aplicaciones y simplifica las tareas de procesamiento de peticiones. Se puede instalar en los principales sistemas operativos Linux. Es popular debido a su eficiencia, fiabilidad y bajo consumo de memoria y CPU.

En este post, explicaremos cómo instalar HAProxy en un sistema Debian 11.

Requisitos previos

  • Un servidor que ejecute Debian 11 para HAProxy.
  • Dos servidores que ejecuten Debian 11 para el servidor Apache Backend.
  • Una contraseña de root configurada en todos los servidores.

Configurar los servidores web backend

A efectos de este tutorial, necesitarás configurar dos servidores backend Apache.

En el primer servidor backend, instala el paquete Apache con el siguiente comando:

apt-get install apache2 -y

Una vez instalado el Apache, crea una página índice Apache de ejemplo con el siguiente comando:

echo "<H1>Welcome to the first Apache Server</H1>" | tee /var/www/html/index.html

En el segundo servidor backend, instala el paquete Apache con el siguiente comando:

apt-get install apache2 -y

A continuación, crea una página de índice Apache de muestra utilizando el siguiente comando:

echo "<H1>Welcome to the second Apache Server</H1>" | tee /var/www/html/index.html

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar HAProxy

Por defecto, HAProxy está incluido en el repositorio por defecto de Debian 11. Puedes instalarlo ejecutando el siguiente comando:

apt-get install haproxy -y

Una vez instalado HAProxy, inicia el servicio HAProxy y habilítalo para que se inicie al reiniciar el sistema:

systemctl start haproxy
systemctl enable haproxy

Cuando hayas terminado, puedes pasar al siguiente paso.

Configurar HAProxy

A continuación, tendrás que editar el archivo de configuración por defecto de HAProxy y definir los servidores web backend.

nano /etc/haproxy/haproxy.cfg

Añade las siguientes líneas:

frontend apache_front
        # Frontend listen port - 80
        bind *:80
        # Set the default backend
        default_backend    apache_backend_servers
        # Enable send X-Forwarded-For header
        option             forwardfor
  
# Define backend
backend apache_backend_servers                                                                                                                     
        # Use roundrobin to balance traffic
        balance            roundrobin
        # Define the backend servers
        server             backend01 192.168.1.10:80 check
        server             backend02 192.168.1.11:80 check

Guarda y cierra el archivo cuando hayas terminado.

Donde: 192.168.1.10 es la dirección IP del primer servidor backend Apache y 192.168.1.11 es la dirección IP del segundo servidor backend Apache.

A continuación, reinicia el servicio HAProxy para aplicar los cambios:

systemctl restart haproxy

Ahora puedes comprobar el estado del HAProxy con el siguiente comando:

systemctl status haproxy

Obtendrás la siguiente salida:

? haproxy.service - HAProxy Load Balancer
     Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-07 03:47:14 UTC; 9s ago
       Docs: man:haproxy(1)
             file:/usr/share/doc/haproxy/configuration.txt.gz
    Process: 86678 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=0/SUCCESS)
   Main PID: 86680 (haproxy)
      Tasks: 3 (limit: 4679)
     Memory: 34.2M
        CPU: 61ms
     CGroup: /system.slice/haproxy.service
             ??86680 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
             ??86682 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock

Nov 07 03:47:14 debian11 systemd[1]: Starting HAProxy Load Balancer...
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_front started.
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_front started.
Nov 07 03:47:14 debian11 systemd[1]: Started HAProxy Load Balancer.
Nov 07 03:47:14 debian11 haproxy[86680]: [NOTICE] 310/034714 (86680) : New worker #1 (86682) forked
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_backend_servers started.
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_backend_servers started.

Verificar HAProxy

En este punto, HAProxy está configurado y funcionando. Ahora, es el momento de probar el HAProxy.

Abre tu navegador web y escribe la URL http://your-haproxy-ip. Verás que HAProxy está enviando solicitudes a los servidores backend una a una después de cada actualización.

Servidor 1

Servidor 2

Conclusión

Enhorabuena! has instalado con éxito HAProxy en Debian 11. Ahora puedes implementar HAProxy en el entorno de producción para aumentar el rendimiento y la disponibilidad de tu aplicación web.

También te podría gustar...