Nós configuramos três máquinas. Instalaremos o Haproxy em um servidor e os servidores da Web Apache em dois servidores. Nosso servidor Haproxy atuará como um balanceador de carga e distribuirá a carga entre os servidores da Web Apache.
Observação: O procedimento e os comandos mencionados neste post foram testados em Ubuntu 20.04 LTS (fossa focal). O mesmo procedimento também é válido para distribuições de Debian e Mint.
Detalhes da rede
Usaremos três servidores Ubuntu; Tudo 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)
HostName: Web-Server1, Endereço IP: 192.168.72.158 (servidores de back -end)
HostName: Web-Server2, Endereço IP: 192.168.72.159 (servidores de back -end)
Observação: Você deve ter privilégios sudo em todos os servidores.
Configuraremos uma máquina como balanceador de carga e os outros dois como servidores da web. O servidor Haproxy será o nosso servidor front-end que receberá as solicitações dos usuários e os encaminhará para os dois servidores da Web. Os servidores da Web serão nossos servidores de back -end que receberão esses pedidos encaminhados.
É assim que nossa configuração se parece:
Configurando servidores da web-backend Servers
Nesta seção, configuraremos dois servidores da Web (Web-Server1 e Web-Server2) como nossos servidores de back -end.
No Web-Server1 (192.168.72.158)
Execute as etapas abaixo em seu servidor da web. Certifique -se de substituir os nomes de host e endereços IP pelos endereços IP relevantes e nomes de host de seus servidores da Web.
Sobre Web-Server1, editar o /etc/hosts arquivo:
$ sudo nano /etc /hosts
Em seguida, adicione a entrada do nome do host para Haproxy servidor da seguinte forma:
HostName-of-Haproxy IP-Dress-O-Haproxy
Em nosso cenário, seria:
Haproxy 192.168.72.157
Configure o servidor da web Apache
Agora instale o Apache Web Server usando o comando abaixo no terminal. Você também pode visitar nossa postagem em Como instalar o servidor da web apache no Linux.
$ sudo apt install apache2
Em seguida, habilite e inicie o serviço Apache usando os comandos abaixo no terminal:
$ sudo systemctl Ativar apache2
$ sudo systemctl start apache2
Criar um arquivo de índice para Web-Server1 Usando o comando abaixo no terminal:
$ eco "Olá! Este é o WebServer1: 192.168.72.158
"| sudo tee/var/www/html/index.html
Se um firewall estiver em execução no seu sistema, você precisará permitir o tráfego do Apache:
$ sudo ufw permitir 80/tcp
Em seguida, recarregue as configurações do firewall:
$ ufw recarregar
Agora tente acessar o site no seu navegador da web digitando http: // seguido pelo endereço IP ou pelo nome do host do seu servidor da web.
http: // hostname-or-ip-address
Como alternativa, você também pode usar o comando curl para testar a página da web.
$ CURL
No Web Server-2 192.168.72.159)
Execute as etapas abaixo no seu segundo servidor da Web. Certifique -se de substituir os nomes de host e endereços IP pelos endereços IP relevantes e nomes de host de seus servidores da Web.
Em Web-Server2, editar o /etc/hosts arquivo:
$ sudo nano /etc /hosts
Em seguida, adicione a entrada do nome do host para Haproxy servidor da seguinte forma:
Haproxy 192.168.72.157
Agora instale o Apache Web Server usando o comando abaixo no terminal.
$ sudo apt install apache2
Em seguida, habilite e inicie o serviço Apache usando os comandos abaixo no terminal:
$ sudo systemctl Ativar apache2
$ sudo systemctl start apache2
Crie um arquivo de índice para Web-Server2 usando o comando abaixo no terminal:
$ eco "Olá! Este é o servidor da web2: 192.168.72.159
"| sudo tee/var/www/html/index.html
Deixe o Apache no firewall:
$ sudo ufw permitir 80/tcp
E então recarregue as configurações do firewall:
$ ufw recarregar
Agora tente acessar o site no seu navegador da web 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.
$ CURL
Agora, nossos servidores da Web Apache estão prontos.
Configurando o servidor Balancer-Frontend de Balancer Haproxy
Nesta seção, criaremos um balanceador de carga haproxy para o nosso Servidores da Web. Este servidor Haproxy atuará como um servidor de 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.
Configure o arquivo hosts
Editar o /etc/hosts Arquivo usando o comando abaixo no terminal:
$ sudo nano /etc /hosts
Adicione as seguintes entradas de nome do host para ambos Apache Servidores da Web junto com seu próprio nome de host:
192.168.72.157 HAPROXY
192.168.72.158 Web-Server1
192.168.72.159 Web-Server2
Agora salve e feche o /etc/hosts arquivo.
Instalando o balanceador de carga Haproxy
Agora, nesta etapa, estaremos instalando o Haproxy em um de nosso servidor Ubuntu (192.168.72.157). Para fazer isso, atualize o APT usando o seguinte comando no terminal:
Atualização $ sudo apt-get
Em seguida, atualize os pacotes usando o comando abaixo:
$ sudo apt-get upgrade
Agora instale o Haproxy usando o seguinte comando no terminal:
$ sudo sudo apt install haproxy
Depois que a instalação do servidor Haproxy terminar, você poderá confirmá -lo usando o comando abaixo no terminal:
$ haproxy -v
Ele mostrará a versão instalada do Haproxy em seu sistema, que verifica se o haproxy foi instalado com sucesso.
Configurando o Haproxy como um balanceador de carga
Na seção a seguir, configuraremos o Haproxy como um balanceador de carga. Fazer isso, editar o/etc/haproxy/haproxy.cfg arquivo:
$ sudo nano /etc/haproxy/haproxy.cfg
Anexar as seguintes linhas no Haproxy.Arquivo CFG substituindo os endereços IP por seus próprios endereços IP.
O Frontend da Web-Frondend Nas linhas de configuração acima, diz Haproxy para ouvir solicitações de entrada na porta 80 de 192.168.72.157 e depois os encaminhe para servidores de back -end configurados em Processo interno web-backend. Ao configurar, substitua os endereços IP pelos endereços IP relevantes de seus servidores da Web.
Configurando o monitoramento do haproxy
Com o Haproxy Monitoring, você pode visualizar muitas informações, incluindo status do servidor, dados transferidos de dados, tempo de atividade, taxa de sessão, etc. Para configurar o monitoramento do Haproxy, anexe as seguintes linhas no arquivo de configuração localizado em /etc/haproxy/haproxy.cfg:
Ouça estatísticas
vincular 192.168.72.157: 8080
modo http
option forwardfor
opção httpclose
Estatísticas Ativar
Estatísticas mostram lendas
STATS Atualizar 5s
Estatísticas URI /STATS
Estatísticas Realm Haproxy \ Statistics
estatísticas auth kbuzdar: kbuzdar #login usuário e senha para o monitoramento
estatísticas admin se true
Default_backend-backend
A configuração acima permite o haproxy “Estatísticas”Página usando o Estatísticas diretiva e protege com http autenticação básica usando o nome de usuário e a senha definidos pelo STATS AUTH diretivo.
Depois de terminar com 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.cfg
A 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ço
Ele vai parar e depois iniciar o serviço Haproxy.
Para verificar o status do serviço Haproxy, o comando seria:
$ sudo systemctl status haproxy.serviço
O ativo (em execução) O status na saída a seguir mostra que o servidor Haproxy está ativado 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ço
Para parar o servidor Haproxy, o comando seria:
$ sudo systemctl pare haproxy.serviço
Caso você queira desativar temporariamente o servidor Haproxy, o comando seria:
$ sudo systemctl desative o haproxy.serviço
Para reativar o servidor Haproxy, o comando seria:
$ sudo systemctl atability haproxy.serviço
Teste haproxy
Antes de testar a configuração do Haproxy, verifique se você tem conectividade com servidores da Web. Do seu servidor Haproxy, ping nos servidores da Web por seus endereços IP ou nomes de hosts.
$ ping hostname-ou-ip-address
A saída a seguir mostra que o servidor Haproxy pode alcançar os dois servidores da Web.
Teste o proxy HA usando um navegador da web
Agora, no seu servidor Haproxy, abra qualquer navegador da web e digite http: // seguido pelo endereço IP do servidor Haproxy, que no nosso caso é 192.168.72.157.
http: // 192.168.72.157
O servidor Haproxy enviará alternativamente a solicitação para os dois 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 o proxy HA usando o 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 pelo nome do host do servidor Haproxy.
$ CURL 192.168.72.157
ou
$ Curl Haproxy
Execute 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:
$ enquanto é verdadeiro; Faça Curl 192.168.72.157; sono 1; feito
Testando o monitoramento do haproxy
Para acessar a página de monitoramento do haproxy, digite http: // Seguido pelo endereço IP/nome do host do servidor Haproxy e pela porta 8080/estatísticas:
http: // 192.168.72.157: 8080/estatísticas
ou
http: // haproxy: 8080/estatísticas
A seguinte caixa de autenticação aparecerá. Digitar o nome de usuário e senha você configurou anteriormente nas configurações e depois pressione OK.
Este é o relatório de estatísticas para o nosso servidor Haproxy.
Lá você tem a instalação e configuração do balanceador de carga Haproxy no sistema Linux. Acabamos de discutir a configuração e a configuração básicas do Haproxy como um balanceador de carga para servidores da Web Apache. Também analisamos alguns comandos para gerenciar o servidor Haproxy. No final, testamos o balanceamento de carga através do navegador e do comando curl. Para mais informações, visite a documentação oficial do Haproxy