Pular para o conteúdo
Início » HAProxy e Ubuntu: Transformando Sua Infraestrutura com Balanceamento de Carga e Failover

HAProxy e Ubuntu: Transformando Sua Infraestrutura com Balanceamento de Carga e Failover

No cenário digital acelerado de hoje, garantir a disponibilidade e o desempenho das aplicações é essencial. Infraestruturas modernas exigem soluções robustas para distribuir o tráfego de forma eficiente e manter a disponibilidade dos serviços, mesmo diante de falhas de servidores. É nesse contexto que o HAProxy se destaca como o padrão de mercado para balanceamento de carga e failover de alto desempenho.

Este artigo explora a sinergia entre o HAProxy e o Ubuntu, uma das distribuições Linux mais populares. Vamos abordar desde a instalação até configurações avançadas, demonstrando como o HAProxy pode transformar sua infraestrutura com capacidades de balanceamento de carga e alta disponibilidade.

Entendendo o Balanceamento de Carga

O balanceamento de carga é o processo de distribuir o tráfego de rede entre múltiplos servidores. Isso evita que um único servidor fique sobrecarregado, resultando em maior desempenho, confiabilidade e tolerância a falhas.

Benefícios principais

  • Escalabilidade: Possibilidade de lidar com aumento de tráfego adicionando mais servidores.
  • Confiabilidade: Redireciona o tráfego para servidores saudáveis em caso de falhas.
  • Desempenho: Reduz a latência distribuindo a carga de maneira uniforme.

Tipos de balanceamento

  • Camada 4 (Camada de Transporte): Distribui o tráfego com base nas informações de IP e porta.
  • Camada 7 (Camada de Aplicação): Toma decisões de roteamento com base em dados da aplicação, como cabeçalhos HTTP.

Conceitos de Failover

O failover garante a continuidade do serviço ao redirecionar automaticamente o tráfego para recursos de backup quando os primários falham. É um pilar fundamental de configurações de alta disponibilidade (HA).

Com o HAProxy, o failover é transparente:

  • Se um servidor backend se tornar indisponível, o HAProxy detecta via verificações de integridade.
  • O tráfego é redirecionado para outros servidores disponíveis, mantendo o serviço sem interrupções.

Configurando o HAProxy no Ubuntu

A seguir, veremos como instalar e configurar o HAProxy no Ubuntu.

Pré-requisitos

  • Um servidor Ubuntu (recomendado 20.04 ou superior).
  • Múltiplos servidores backend para testar o balanceamento de carga.

Passo 1: Instalando o HAProxy

Atualize seu sistema:

sudo apt update && sudo apt upgrade -y

Instale o HAProxy:

sudo apt install haproxy -y

Verifique a instalação:

haproxy -v

Passo 2: Configurando o HAProxy

Edite o arquivo de configuração em /etc/haproxy/haproxy.cfg:

global
    log /dev/log local0
    log /dev/log local1 notice
    maxconn 2048
    daemon

defaults
    log global
    option httplog
    option dontlognull
    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 o HAProxy para aplicar as alterações:

sudo systemctl restart haproxy

Teste acessando o IP do seu servidor. O HAProxy distribuirá as solicitações entre os servidores backend.

Configurações Avançadas

Algoritmos de Balanceamento

  • Round Robin: Distribui as solicitações sequencialmente.
  • Menor Número de Conexões: Roteia para o servidor com menos conexões ativas.
  • Origem: Garante que um cliente sempre seja roteado para o mesmo servidor.

Atualize a diretiva balance no backend conforme necessário.

Verificações de Integridade

As verificações de integridade garantem que o tráfego seja enviado apenas para servidores saudáveis. A diretiva check executa verificações periódicas.

Terminação SSL

Para proteger o tráfego, configure o HAProxy para gerenciar a terminação SSL.

  1. Obtenha um certificado SSL.
  2. Atualize a configuração para usar HTTPS:
frontend https_front
    bind *:443 ssl crt /etc/haproxy/certs/example.pem
    default_backend http_back

Listas de Controle de Acesso (ACLs)

Use ACLs para filtrar o tráfego:

frontend http_front
    acl is_api path_beg /api
    use_backend api_back if is_api

Habilitando Alta Disponibilidade

VRRP com Keepalived

Para habilitar failover, integre o Keepalived ao HAProxy.

Instale o Keepalived:

sudo apt install keepalived -y

Configure o Keepalived em /etc/keepalived/keepalived.conf:

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
    }
}

Reinicie o Keepalived:

sudo systemctl restart keepalived

Quando o servidor primário falhar, o Keepalived garantirá que o secundário assuma o controle de forma transparente.

Monitoramento e Otimização de Desempenho

Painel de Estatísticas do HAProxy

Habilite o painel para monitoramento em tempo real:

listen stats
    bind *:8404
    stats enable
    stats uri /stats
    stats auth admin:password

Acesse em http://<ip-do-servidor>:8404/stats.

Dicas de Otimização

  • Ajuste os valores de maxconn e timeout.
  • Use compressão gzip para tráfego HTTP.
  • Monitore os logs para identificar anomalias.

Casos de Uso e Cenários Reais

  • Microsserviços: Distribua requisições de APIs entre múltiplos serviços.
  • Aplicações Web: Gerencie picos de tráfego escalando servidores backend.
  • Balanceamento de Banco de Dados: Otimize operações de leitura e escrita.

Solução de Problemas Comuns

Problemas de Conectividade

  • Verifique as regras de firewall.
  • Certifique-se de que os servidores backend estão saudáveis.

Gargalos de Desempenho

  • Aumente o limite de descritores de arquivos (ulimit).
  • Otimize as configurações dos servidores backend.

Ao combinar o HAProxy com o Ubuntu, você obtém uma poderosa solução para gerenciar tráfego e garantir alta disponibilidade. Com as etapas detalhadas acima, você pode construir uma infraestrutura resiliente capaz de lidar com altas cargas e falhas de servidores.

Comece a experimentar o HAProxy hoje mesmo e desbloqueie todo o potencial de seus sistemas baseados em Ubuntu.

Marcações: