Cómo instalar y configurar HAProxy en Ubuntu 22.04

HAProxy, que también significa Proxy de Alta Disponibilidad, es un equilibrador de carga y una solución de proxy gratuitos y de código abierto diseñados para simplificar y proteger las arquitecturas de aplicaciones modernas. Permite que un servidor web distribuya las peticiones entrantes entre varios puntos finales. Es muy útil cuando demasiadas conexiones simultáneas saturan la capacidad de un único servidor. Está ganando popularidad debido a su eficiencia, fiabilidad y bajo consumo de memoria y CPU.

En este post, explicaremos cómo instalar HAProxy en Ubuntu 22.04.

Requisitos previos

  • Un servidor con Ubuntu 22.04 para HAProxy.
  • Dos servidores con Ubuntu 22.04 para el servidor Apache Backend.
  • Una contraseña de root configurada en todos los servidores.

Configurar los servidores web Apache como servidor backend

En primer lugar, tendrás que configurar dos servidores web Apache como servidor backend para realizar el tutorial.

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

apt-get install apache2 -y

Después de la instalación, crea una página índice Apache de ejemplo con el siguiente comando:

echo "<H1>Success! This is my 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 índice de Apache de muestra utilizando el siguiente comando:

echo "<H1>Success! This is my second Apache Server</H1>" | tee /var/www/html/index.html

Una vez que hayas terminado, puedes proceder a instalar el servidor HAProxy.

Instalar HAProxy

Por defecto, HAProxy está incluido en el repositorio por defecto de Ubuntu 22.04. 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

Una vez hayas terminado, puedes proceder a configurar el HAProxy.

Configurar el HAProxy

Llegados a este punto, el HAProxy está instalado y funcionando. Ahora, 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 tus dos servidores backend Apache:

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 172.16.0.200:80 check
        server             backend02 172.16.0.201:80 check

Guarda y cierra el archivo cuando hayas terminado.

Donde: 172.16.0.200 es la dirección IP del primer servidor backend Apache y 172.16.0.201 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 Mon 2022-07-11 09:03:45 UTC; 45s ago
       Docs: man:haproxy(1)
             file:/usr/share/doc/haproxy/configuration.txt.gz
   Main PID: 48217 (haproxy)
      Tasks: 2 (limit: 2242)
     Memory: 71.3M
        CPU: 143ms
     CGroup: /system.slice/haproxy.service
             ??48217 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
             ??48219 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock

Jul 11 09:03:45 ubuntu2204 systemd[1]: Starting HAProxy Load Balancer...
Jul 11 09:03:45 ubuntu2204 haproxy[48217]: [NOTICE]   (48217) : New worker #1 (48219) forked
Jul 11 09:03:45 ubuntu2204 systemd[1]: Started HAProxy Load Balancer.

Probar HAProxy

En este punto, HAProxy está configurado y funcionando. Ahora, es el momento de verificar si el HAProxy funciona o no.

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

Primer servidor HAProxy

Segundo servidor HAProxy

Conclusión

En este post, te hemos mostrado cómo instalar y configurar el servidor HAProxy para distribuir la carga entre dos servidores web Apache. en Ubuntu 22.04. Ahora puedes implementar HAProxy en el entorno de producción para aumentar el rendimiento y la disponibilidad de tu aplicación web.

Scroll al inicio