Configuramos três máquinas. Instalaremos HAproxy em um servidor e os servidores web Apache em dois servidores. Nosso servidor HAproxy agirá então como um balanceador de carga e distribuirá a carga entre os servidores da web Apache.
Observação: O procedimento e os comandos mencionados nesta postagem foram testados em Ubuntu 20.04 LTS (Fossa Focal). O mesmo procedimento também é válido para distribuições Debian e Mint.
Detalhes da rede
Estaremos usando três servidores Ubuntu; todos na mesma rede. Os detalhes de nossos servidores são os seguintes:
Nome do host: HAproxy, endereço IP: 192.168.72.157 (servidor front-end)Nome do host: web-server1, endereço IP: 192.168.72.158 (servidores de back-end)
Nome do host: web-server2, endereço IP: 192.168.72.159 (servidores back-end)
Observação: Você deve ter privilégios sudo em todos os servidores.
Vamos configurar uma máquina como balanceador de carga e as outras duas como servidores web. O servidor HAproxy será nosso servidor front-end que receberá as solicitações dos usuários e as encaminhará para os dois servidores web. Os servidores web serão nossos servidores de back-end que receberão essas solicitações encaminhadas.
Nossa configuração é assim:
Configurando servidores da web - servidores de back-end
Nesta seção, iremos configurar dois servidores web (web-server1 e web-server2) como nossos servidores de back-end.
No servidor web1 (192.168.72.158)
Execute as etapas abaixo em seu servidor web. Certifique-se de substituir os nomes de host e endereços IP pelos endereços IP e nomes de host relevantes de seus servidores da web.
1. Configurar arquivo hosts
Sobre web-server1, edite o / etc / hosts Arquivo:
$ sudo nano / etc / hostsEm seguida, adicione a entrada do nome do host para HAproxy servidor da seguinte forma:
hostname-of-HAproxy IP-address-of-HAproxyEm nosso cenário, seria:
HAproxy 192.168.72.1572. Configurar servidor web Apache
Agora instale o servidor web Apache usando o comando abaixo no Terminal. Você também pode visitar nosso post em Como instalar o servidor web Apache no Linux.
$ sudo apt install apache2Em seguida, habilite e inicie o serviço Apache usando os comandos abaixo no Terminal:
$ sudo systemctl enable apache2$ sudo systemctl start apache2
Crie um arquivo de índice para web-server1 usando o comando abaixo no Terminal:
$ echo "Olá! Este é webserver1: 192.168.72.158
"| sudo tee / var / www / html / index.htmlSe um firewall estiver sendo executado em seu sistema, você precisará permitir o tráfego do Apache através dele:
$ sudo ufw allow 80 / tcpEm seguida, recarregue as configurações do firewall:
$ ufw reloadAgora tente acessar o site em seu navegador digitando http: // seguido pelo endereço IP ou pelo nome do host do seu servidor web.
http: // hostname-or-IP-address
Como alternativa, você também pode usar o comando curl para testar a página da web.
$ curlNo servidor web-2 192.168.72.159)
Execute as etapas abaixo em seu segundo servidor da web. Certifique-se de substituir os nomes de host e endereços IP pelos endereços IP e nomes de host relevantes de seus servidores da web.
1. Configurar arquivo hosts
Dentro web-server2, edite o / etc / hosts Arquivo:
$ sudo nano / etc / hostsEm seguida, adicione a entrada do nome do host para HAproxy servidor da seguinte forma:
HAproxy 192.168.72.1572. Instale o servidor da web Apache
Agora instale o servidor web Apache usando o comando abaixo no Terminal.
$ sudo apt install apache2Em seguida, habilite e inicie o serviço Apache usando os comandos abaixo no Terminal:
$ sudo systemctl enable apache2$ sudo systemctl start apache2
Crie um arquivo de índice para web-server2 usando o comando abaixo no Terminal:
$ echo "Olá! Este é webserver2: 192.168.72.159
"| sudo tee / var / www / html / index.htmlPermitir Apache no firewall:
$ sudo ufw allow 80 / tcpe recarregue as configurações de firewall:
$ ufw reloadAgora tente acessar o site em seu navegador digitando http: // seguido pelo endereço IP ou pelo nome do host.
http: // hostname-or-IP-address
Como alternativa, você pode usar o comando curl para testar a página da web.
$ curlAgora nossos servidores da web Apache estão prontos.
Configurando o balanceador de carga HAproxy - servidor front-end
Nesta seção, vamos configurar um balanceador de carga HAproxy para nosso servidores web. Este servidor HAproxy atuará como um servidor front-end e aceita solicitações de entrada de clientes.
No HAproxy servidor (192.168.72.157), execute as etapas abaixo para configurar o balanceador de carga.
1. Configurar arquivo hosts
Edite o / etc / hosts arquivo usando o comando abaixo no Terminal:
$ sudo nano / etc / hostsAdicione as seguintes entradas de nome de host para ambos Apache servidores da web junto com seu próprio nome de host:
192.168.72.157 HAproxy192.168.72.158 servidor web1
192.168.72.159 servidor web2
Agora salve e feche o / etc / hosts Arquivo.
Instalando o balanceador de carga HAproxy
Agora nesta etapa, iremos instalar o HAproxy em um de nossos servidores Ubuntu (192.168.72.157). Para fazer isso, atualize o apt usando o seguinte comando no Terminal:
$ sudo apt-get updateEm seguida, atualize os pacotes usando o comando abaixo:
$ sudo apt-get upgradeAgora instale o HAproxy usando o seguinte comando no Terminal:
$ sudo sudo apt install haproxy
Assim que a instalação do servidor HAproxy for concluída, você pode confirmá-la usando o comando abaixo no Terminal:
$ haproxy -vEle irá mostrar a você a versão instalada do HAproxy em seu sistema, que verifica se o HAproxy foi instalado com sucesso.
Configurando HAproxy como um balanceador de carga
Na seção a seguir, configuraremos o HAproxy como um balanceador de carga. Para fazer isso, edite o / etc / haproxy / haproxy.cfg Arquivo:
$ sudo nano / etc / haproxy / haproxy.cfgAnexe as seguintes linhas no haproxy.arquivo cfg substituindo os endereços IP por seus próprios endereços IP.
O frontend web-frontend nas linhas de configuração acima diz ao HAproxy para ouvir as solicitações de entrada na porta 80 de 192.168.72.157 e, em seguida, encaminhe-os para servidores back-end configurados sob Processo interno backend da web. Durante a configuração, substitua os endereços IP pelos endereços IP relevantes de seus servidores da web.
Configurando o monitoramento HAproxy
Com o monitoramento HAproxy, você pode visualizar muitas informações, incluindo status do servidor, dados transferidos, tempo de atividade, taxa de sessão, etc. Para configurar o monitoramento HAproxy, anexe as seguintes linhas no arquivo de configuração localizado em / etc / haproxy / haproxy.cfg:
ouvir estatísticasvincular 192.168.72.157: 8080
modo http
opção encaminhar para
opção httpclose
habilitar estatísticas
estatísticas show-legends
atualização de estatísticas 5s
estatísticas uri / estatísticas
stats realm Haproxy \ Statistics
stats auth kbuzdar: kbuzdar        # Logar Usuário e Senha para o monitoramento
administrador de estatísticas se TRUE
default_backend web-backend
A configuração acima ativa o HAproxy “Estatísticasâ € página usando o Estatísticas diretiva e a protege com http autenticação básica usando o nome de usuário e senha definidos pelo autenticação de estatísticas diretriz.
Assim que terminar as configurações, salve e feche o haproxy.arquivo cfg.
Agora verifique o arquivo de configuração usando o comando abaixo no Terminal:
$ haproxy -c -f / etc / haproxy / haproxy.cfgA saída a seguir mostra que as configurações estão corretas.
Agora, para aplicar as configurações, reinicie o serviço HAproxy:
$ sudo systemctl reiniciar haproxy.serviçoEle irá parar e, em seguida, iniciar o serviço HAproxy.
Para verificar o status do serviço HAproxy, o comando seria:
$ sudo systemctl status haproxy.serviçoO ativo (em execução) status na saída a seguir mostra que o servidor HAproxy está habilitado e funcionando bem.
Aqui estão alguns outros comandos para gerenciar o servidor HAproxy:
Para iniciar o servidor HAproxy, o comando seria:
$ sudo systemctl start haproxy.serviçoPara parar o servidor HAproxy, o comando seria:
$ sudo systemctl stop haproxy.serviçoCaso queira desativar temporariamente o servidor HAproxy, o comando seria:
$ sudo systemctl disable haproxy.serviçoPara reativar o servidor HAproxy, o comando seria:
$ sudo systemctl enable haproxy.serviçoTeste HAproxy
Antes de testar a configuração do HAproxy, certifique-se de ter conectividade com os servidores da web. Do seu servidor HAproxy, execute ping em ambos os servidores da web por seus endereços IP ou nomes de host.
$ ping hostname-or-ip-addressA saída a seguir mostra que o servidor HAproxy pode alcançar ambos os servidores da web.
Teste o proxy HA usando um navegador da web
Agora em seu servidor HAproxy, abra qualquer navegador da web e digite http: // seguido pelo endereço IP do servidor HAproxy que em nosso caso é 192.168.72.157.
http: // 192.168.72.157O servidor HAproxy irá, alternativamente, enviar a solicitação para ambos os servidores da web em um método round-robin. Você pode testar isso recarregando a página da web algumas vezes.
Esta é a resposta que recebemos quando visitamos o http: // 192.168.72.157 pela primeira vez:
Esta é a resposta que recebemos quando recarregamos a página da web:
Você também pode usar o nome do host no lugar do endereço IP do servidor HAproxy.
Teste HA Proxy usando curl
Você também pode usar o comando curl no Linux para testar a configuração do HAproxy. Abra o Terminal e digite ondulação seguido pelo endereço IP ou o nome do host do servidor HAproxy.
$ curl 192.168.72.157ou
$ curl HAproxyExecute o comando curl algumas vezes e você verá a resposta alternando entre os dois servidores da web.
Em vez de executar os comandos várias vezes, você também pode executar o seguinte script de uma linha para testar o servidor HAproxy:
$ while true; fazer curl 192.168.72.157; dormir 1; feito
Testando Monitoramento HAproxy
Para acessar a página de monitoramento HAproxy, digite http: // seguido pelo endereço IP / nome do host do servidor HAproxy e porta 8080 / estatísticas:
http: // 192.168.72.157: 8080 / estatísticasou
http: // HAproxy: 8080 / statsA seguinte caixa de autenticação aparecerá. Entrar o nome de usuário e senha você configurou anteriormente nas configurações e, em seguida, pressione OK.
Este é o relatório de estatísticas para nosso servidor HAproxy.
Lá você tem a instalação e configuração do balanceador de carga HAproxy no sistema Linux. Acabamos de discutir a instalação e configuração básicas do HAproxy como um balanceador de carga para servidores da web Apache. Também vimos alguns comandos para gerenciar o servidor HAproxy. No final, testamos o balanceamento de carga por meio do navegador e do comando curl. Para obter mais informações, visite a documentação oficial do HAproxy