Como configurar um balanceador de carga Haproxy

O HAProxy é um balanceador de carga de código aberto, capaz de balancear qualquer serviço baseado em TCP. É comumente usado para balancear HTTP e pode ajudar a solucionar problemas de tráfego em seu servidor web. Veja como configurá-lo.

índice

  1. O que é HAProxy?
  2. Como configurar o balanceamento de carga HAProxy

O que é HAProxy?

Balanceadores de carga como o HAProxy permitem que você divida o tráfego entre vários servidores, tornando-os mais fáceis de gerenciar. Em vez de apontar seu IP para o seu servidor web, ele o apontará para um servidor HAProxy, que decide para onde enviá-lo de lá. O HAProxy é muito leve e não precisa de muitos recursos para ser executado, portanto, você pode usar um único balanceador de carga para muitos servidores de back-end. Idealmente, você deseja que seu servidor HAProxy e seus servidores web sejam hospedados no mesmo data center, pelo mesmo provedor de nuvem, para reduzir a latência.

O HAProxy também torna sua rede mais resiliente. Se um servidor da web falhar, o HAProxy pode rotear o tráfego para o restante enquanto diagnostica o problema. Para ser realmente resiliente, recomendamos que você tenha um servidor HAProxy de backup, caso seu balanceador de carga fique inativo.

Mesmo com o HAProxy, muitas vezes você desejará ter um CDN completo à sua frente, tanto para lidar com a carga extra quanto para ter mais pontos de presença mais próximos do usuário final.

Como configurar o balanceamento de carga HAProxy

Primeiro, instale o HAProxy do gerenciador de pacotes da sua distribuição. Para sistemas baseados em Debian como o Ubuntu, será:

 apt-get instala haproxy

Você precisará habilitá-lo editando o script de inicialização em /etc/default/haproxy e definindo ENABLED para 1:

 ATIVADO=1

Agora, se você executar o service haproxy , deverá ver que ele está habilitado e pronto para ser configurado. Começaremos arquivando o arquivo de configuração padrão:

 mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.old

Crie um novo arquivo de configuração e comece adicionando algumas configurações globais:

 log global 127.0.0.1 aviso local0 maxconn 2000 usuário haproxy group haproxy stats habilitar estatísticas uri /haproxy?stats stats realm HAProxy Statistics stats auth admin:password

A configuração do log especifica o servidor syslog para o qual o HAProxy envia os logs. Você precisará ter um servidor como o rsyslog em execução para usá-lo. A configuração maxconn especifica o número máximo de conexões simultâneas e user AND group especifica em qual usuário Unix o HAProxy opera.

As últimas linhas ativam a página de estatísticas integrada do HAProxy, que você pode visualizar navegando até o URI em seu navegador. Neste caso seria http://your_ip/haproxy?stats , mas você pode ver uma demonstração aqui.

Em seguida, definiremos as configurações padrão que se aplicam a todos. listen blocos se eles não fizerem alterações:

 padrões de log modo global opção http httplog opção dontlognull tenta novamente 3 opções tempo limite de redispatch conectar 5000 tempo limite cliente 10000 tempo limite servidor 10000

Estamos definindo o padrão para usar as configurações globais de log, operar em HTTP e definir algumas configurações de tempo limite de conexão.

Criaremos um bloco de front- frontend que fará o trabalho pesado e encaminhará as conexões para o back-end:

 frontend proxy bind *:80 # declarações de função ACL acl is_abuse src_http_req_rate(Abuse) ge 10 acl inc_abuse_cnt src_inc_gpc0(Abuse) gt 0 acl abuse_cnt src_get_gpc0(Abuse) gt 0 # Regras tcp-request connection track-sc0 src table Abuse tcp-request connection rejeitar se abuse_cnt http-request negar se abuse_cnt http-request negar se is_abuse inc_abuse_cnt opção httpfechar opção forwardfor use_backend appname

A primeira linha associa esta interface à porta 80, na qual o HAProxy escutará.

As próximas duas seções tratam da limitação de velocidade. Primeiro, são declaradas as funções da lista de controle de acesso (ACL), que determinam se um endereço IP é abusivo. Portanto, um conjunto de regras rejeitará uma conexão se fizer muitas solicitações.

A opção forwardfor enviará o endereço IP do cliente para o servidor. Como o HAProxy atua como um proxy reverso, seu servidor nginx verá apenas o endereço IP do seu servidor HAProxy. Esta opção define o cabeçalho HTTP X-Forwarded-For para o endereço IP do cliente.

E, finalmente, vamos configurar este bloco de frontend para usar o backend "appname", que precisaremos criar. O bloco de backend -end simplesmente define os servidores para os quais encaminhar, juntamente com algumas opções:

 backend appname your_ip:80 balance roundrobin cookie SERVERNAME inserir servidor web1 web1_ip:80 verificar cookie web1 servidor web2 web2_ip:80 verificar cookie web2

A diretiva balance define como o HAProxy equilibra as solicitações entre os servidores. A opção mais comum é roundrobin , que roteará as conexões por meio de cada servidor em ordem. Se você estiver tendo problemas com seu saldo, tente usar a opção leastconn , que seleciona com base em conexões simultâneas. Se você precisar que os usuários acessem o mesmo servidor em várias conexões, poderá usar a opção de source , que você seleciona com base em um hash do endereço IP do cliente.

As duas últimas linhas atribuem servidores a este listen de bloco. Você dá a eles um nome ( web1 AND web2 ) especifica seus endereços e depois lista algumas opções. Aqui usamos o parâmetro check para garantir que o servidor esteja íntegro e aceitando conexões, e o parâmetro cookie para definir o cookie SERVERNAME (que definimos diretamente acima) para o nome do servidor, que é usado para persistência de sessão (para que o usuário não muda de servidor enquanto estiver usando o site). A opção de balance source obtém o mesmo efeito.

E como estamos usando a limitação de taxa, precisaremos de outro back-end para armazenar os endereços IP:

 backend Abuse stick-table type ip size 100K expire 30m store gpc0,http_req_rate(10s)

Na verdade, isso não encaminha nenhuma conexão; funciona como uma tabela para armazenar endereços. Os endereços são removidos após 30 minutos, portanto, os endereços considerados ofensivos serão bloqueados por 30 minutos.

Por fim, você pode iniciar o serviço HAProxy executando:

 serviço haproxy start
  • Google finalmente explica os tempos de carregamento lentos do Pixel 6
  • Malware BrazKing para Android retorna como Trojan bancário furtivo

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

Tradução para o inglês – HAProxy é um software gratuito e de código aberto que fornece um balanceador de carga e proxy reverso altamente disponível para aplicativos baseados em TCP e HTTP que distribuem solicitações em vários servidores. Está escrito em C e tem a reputação de ser rápido e eficiente.

O que significa HAProxy?

HAProxy é um pacote de sistema operacional que você deve instalar com uma ferramenta como yum ou yast. Depois de configurá-lo, ele será executado como um serviço no sistema operacional. O arquivo de configuração HAProxy é haproxy . cfg.

Como funciona o proxy Ha?

HaProxy é um balanceador de carga de código aberto e proxy reverso usado para distribuir solicitações em vários servidores. Está escrito em C e é conhecido por sua velocidade e eficiência. Ele pode ser usado gratuitamente na maioria das distribuições Linux.

Como configurar o HAProxy?

Para instalar e configurar o HAProxy :

  1. Abra o acesso à porta 1344.
  2. No servidor que você deseja usar para balanceamento ICAP, instale o pacote HAProxy .
  3. No servidor que você deseja usar para balanceamento ICAP, adicione os seguintes blocos de configuração ao arquivo /etc/ haproxy / haproxy .cfg:

O que é um balanceador de tráfego?

· Um balanceador de carga é um dispositivo que atua como um proxy reverso distribuindo tráfego de rede ou aplicativo para vários servidores. · Os balanceadores são usados ​​para aumentar a capacidade e a confiabilidade do processamento.

Ir arriba