HAProxy y Ubuntu: Carga equilibrada y conmutación por error para una infraestructura resiliente

En un mundo digital en constante evolución, garantizar la disponibilidad y el rendimiento de las aplicaciones es fundamental. La combinación de HAProxy, el estándar de facto en equilibrio de carga y conmutación por error, con Ubuntu, una de las distribuciones de Linux más populares, ofrece una solución robusta para distribuir el tráfico de manera eficiente y mantener los servicios disponibles incluso ante fallos en los servidores.

¿Qué es el equilibrio de carga?

El equilibrio de carga consiste en distribuir el tráfico de red entrante entre varios servidores, evitando que uno solo se sature. Entre los beneficios clave destacan:

  • Escalabilidad: Permite manejar picos de tráfico agregando más servidores.
  • Confiabilidad: Redirige el tráfico hacia servidores en buen estado cuando otros fallan.
  • Rendimiento: Reduce la latencia al repartir la carga de manera uniforme.

Existen dos tipos principales de equilibrio de carga:

  • Capa 4 (Transporte): Distribuye tráfico según información de IP y puerto.
  • Capa 7 (Aplicación): Toma decisiones basadas en datos como encabezados HTTP.

Conmutación por error con HAProxy

La conmutación por error garantiza la continuidad del servicio al redirigir el tráfico automáticamente a servidores de respaldo si los principales fallan. HAProxy logra esto mediante verificaciones de salud periódicas que detectan problemas en los servidores backend, asegurando una experiencia ininterrumpida para los usuarios.

Cómo configurar HAProxy en Ubuntu

Requisitos previos

  • Ubuntu 20.04 o superior.
  • Múltiples servidores backend para pruebas.
  • Conocimientos básicos de línea de comandos en Linux.
  1. Instalación de HAProxy
    Actualice el sistema:

    sudo apt update && sudo apt upgrade -y

    Instale HAProxy:

    sudo apt install haproxy -y

    Verifique la instalación:

    haproxy -v
  2. Configuración básica de HAProxy
    Edite el archivo /etc/haproxy/haproxy.cfg con la siguiente configuración:

    global
    log /dev/log
    local0 log /dev/log local1 notice
    maxconn 2048
    daemon
    defaults
    log global
    option httplog
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms
    frontend http_front
    bind *:80
    default_backend http_back
    backend http_back
    balance roundrobin
    server server1 192.168.1.101:80 check server
    server2 192.168.1.102:80 check

    Reinicie HAProxy para aplicar los cambios:
    sudo systemctl restart haproxy

Configuraciones avanzadas

  • Algoritmos de equilibrio: Además de Round Robin, se puede usar «Least Connections» para priorizar servidores con menos conexiones activas, o «Source» para garantizar que un cliente siempre sea dirigido al mismo servidor.
  • SSL: HAProxy puede gestionar la terminación SSL para cifrar el tráfico. Obtenga un certificado y configure:

    frontend https_front
    bind *:443 ssl crt /etc/haproxy/certs/example.pem
    default_backend http_back
  • Control de acceso: Utilice ACLs para dirigir el tráfico según rutas específicas:

    frontend http_front
    acl is_api path_beg /api
    use_backend api_back if is_api

Alta disponibilidad con Keepalived

Para configurar un entorno de alta disponibilidad, puede integrar Keepalived con HAProxy, habilitando una IP virtual compartida entre dos servidores. Cuando uno falla, el otro toma el control.

  1. Instale Keepalived:
    sudo apt install keepalived -y
  2. Configure /etc/keepalived/keepalived.conf:kotlin

    vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass mypassword
    }
    virtual_ipaddress {
    192.168.1.100
    }
    }
  3. Reinicie Keepalived:
    sudo systemctl restart keepalived

Supervisión y optimización

  • Panel de estadísticas de HAProxy: Permite monitorizar en tiempo real. Añada al archivo de configuración:
    listen stats
    bind *:8404
    stats enable
    stats uri /stats
    stats auth admin:password
    Acceda en http://<ip-del-servidor>:8404/stats.
  • Optimización: Ajuste parámetros como maxconn y active la compresión GZIP para optimizar la velocidad.

Casos de uso

  • Aplicaciones web con tráfico elevado.
  • Microservicios distribuidos.
  • Balanceo de operaciones en bases de datos.

Ventajas de HAProxy según David Carrero

David Carrero, experto en infraestructura cloud y cofundador de Stackscale (Grupo Aire), resalta: “HAProxy es una herramienta imprescindible para cualquier infraestructura que priorice la alta disponibilidad. Su capacidad para integrar SSL, gestionar tráfico con algoritmos avanzados y facilitar la alta disponibilidad con herramientas como Keepalived permite a las empresas ofrecer servicios más seguros y confiables. Además, su eficiencia en la distribución de tráfico contribuye a optimizar el uso de recursos y reducir los costos operativos”.

HAProxy, combinado con Ubuntu, es una solución poderosa y versátil para gestionar tráfico, garantizar la disponibilidad y mejorar el rendimiento de aplicaciones. Al implementar estas herramientas, las organizaciones pueden construir una infraestructura resiliente capaz de afrontar los desafíos de la era digital.

vía: Linux Journal

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio