O balanceamento de carga é a prática mais comum de distribuição de tráfego da web de entrada entre vários servidores back-end. Isso torna o aplicativo altamente disponível, mesmo se alguns dos servidores caírem por algum motivo. O balanceamento de carga aumenta a eficiência e confiabilidade de um aplicativo da web. O balanceador de carga HAProxy é usado para a mesma finalidade. É o balanceador de carga mais amplamente usado nas indústrias. De acordo com o site oficial, o HAProxy é usado por empresas líderes como AWS, Fedora, Github e muito mais.
HAProxy ou High Availability Proxy fornece alta disponibilidade e solução de proxy. Ele é escrito em C e funciona nas camadas de rede e de aplicação do modelo TCP / IP. A melhor coisa é que ele tem uma edição da comunidade gratuita e é um aplicativo de código aberto. Funciona em sistemas operacionais Linux, FreeBSD e Solaris. A edição empresarial também está lá, mas tem uma etiqueta de preço.
Neste guia, veremos Como instalar o HAProxy e configurar o servidor de balanceamento de carga no Debian 10.
Pré-requisitos:
- “Sudo” acesso a todas as máquinas e conhecimentos básicos de execução de comandos no terminal Linux.
- Endereços IP privados adicionados ao balanceador de carga e servidores back-end.
- Sistema operacional Debian 10 instalado em todas as máquinas.
Instalando HAProxy no Debian 10
Para nosso guia, assumiremos a seguinte configuração de endereço IP:
- Balanceador de carga HAProxy 10.0.12.10
- Web server1: Endereço IP: 10.0.12.15
- Servidor Web 2: Endereço IP: 10.0.12.16
Passo 1. Atualize o repositório e os pacotes do sistema Debian
Primeiro, execute os comandos abaixo em todos os sistemas para atualizar os pacotes de software para o mais recente.
$ sudo apt update$ sudo apt upgrade -y
Etapa: 2 Instale o Nginx em servidores back-end
Prepare seus servidores back-end instalando o servidor web Nginx em cada. Você também pode optar por instalar outros servidores da web como o apache.
Para instalar o Nginx, execute os seguintes comandos em cada servidor back-end em seu ambiente:
$ sudo apt install nginxEtapa: 3 Depois que o Nginx for instalado em seus servidores back-end, inicie o serviço, conforme mostrado abaixo:
$ Sudo systemctl start nginxGORJETA: Também podemos gerenciar o servidor da web nginx usando o comando abaixo:
$ sudo / etc / init.d / nginx “opção”opção: iniciar recarregar reiniciar status parar
Etapa: 4 Crie páginas de índice personalizadas na pasta da web de cada servidor da web Nginx. Isso nos ajudará a distinguir qual servidor back-end está atendendo às solicitações de entrada.
Em cada servidor da web, execute as seguintes tarefas:
Faça backup do arquivo de índice original usando o seguinte comando:
$ sudo cp / usr / share / nginx / html / index.html / usr / share / nginx / html / index.html.origAdicionar texto personalizado ao índice.arquivo html. Estamos adicionando o endereço IP de cada servidor web.
Para servidor web 1:
$ sudo echo "Servidor web 1: 10.0.12.15 "| sudo tee / usr / share / nginx / html / index.htmlPara servidor web 2:
$ sudo echo "Servidor web 2: 10.0.12.16 "| sudo tee / usr / share / nginx / html / index.htmlVocê também pode usar o editor vi se se sentir mais confortável com isso. Isso é mostrado abaixo:
$ sudo vi / usr / share / nginx / html / index.htmlQuando o arquivo for aberto, digite o texto e salve o arquivo.
Abra o arquivo host virtual padrão no diretório “/ etc / nginx / sites-available /”.
$ sudo nano / etc / nginx / sites-available / defaultAgora, dentro do bloco do servidor, altere a diretiva raiz de “/ var / www / html” para “/ usr / share / nginx / html”.
Para verificar a configuração do Nginx, execute o seguinte comando:
$ sudo nginx -tEtapa 5: agora reinicie o serviço usando o comando:
$ sudo systemctl restart nginxVocê pode verificar o status do nginx usando o seguinte comando:
$ sudo systemctl status nginxEtapa: 6 Para instalar o HAProxy no Debian 10 (Buster), execute o seguinte comando no balanceador de carga.
$ sudo apt install haproxy -yDica: Depois que o HAProxy estiver instalado, você pode gerenciar o HAProxy por meio de um script de inicialização. Para isso, defina o parâmetro “enabled” para 1 em “/ etc / default / haproxy” conforme mostrado abaixo:
$ sudo vi / etc / default / haproxyHABILITADO = 1
Agora, a seguinte opção pode ser usada com um script de inicialização:
opção $ sudo service haproxy “.”opção: iniciar recarregar reiniciar status parar
Etapa: 7 Agora configure o balanceador de carga HAProxy editando o arquivo de configuração padrão haproxy, i.e. “/ Etc / haproxy / haproxy.cfg ”. Para editar este arquivo, execute o seguinte comando
$ sudo vi / etc / haproxy / haproxy.cfgDica: Faça backup do arquivo original para que, caso algo dê errado, estejamos todos seguros. Para realizar o backup, use o seguinte comando:
$ sudo cp / etc / haproxy / haproxy.cfg / etc / haproxy / haproxy.cfg.origAgora vá para o final do arquivo e edite as seguintes informações:
frontend Local_Servervincular 10.0.12.10:80
modo http
servidor da web default_backend
servidor web backend
modo http
equilíbrio roundrobin
opção encaminhar para
http-request set-header X-Forwarded-Port% [dst_port]
http-request add-header X-Forwarded-Proto https se ssl_fc
opção httpchk HEAD / HTTP / 1.1rnHost: localhost
servidor web1 10.0.12.15:80
servidor web2 10.0.12.16:80
Observação: Não se esqueça de alterar os endereços IP no arquivo acima para aquele que você adicionou aos seus servidores da web.
Etapa: 8 Verifique a sintaxe de configuração do arquivo acima com o seguinte comando:
$ sudo haproxy -c -f / etc / haproxy / haproxy.cfgSe tudo der certo, ele mostrará uma saída como: “Arquivo de configuração é válido.”Se você receber algum erro na saída, verifique novamente o seu arquivo de configuração e verifique-o novamente.
Etapa: 9 Agora reinicie o serviço HAProxy para aplicar as alterações
$ sudo service haproxy restartTestando a configuração
Agora é hora de ver se nossa configuração está funcionando corretamente. Insira o IP do sistema do balanceador de carga em um navegador da web (em nosso caso, é 10.0.12.10) e atualize a página continuamente por 2 a 4 vezes para ver se o balanceador de carga HAProxy está funcionando corretamente. Você deve ver diferentes endereços IP ou qualquer texto que tenha inserido no índice.arquivo html quando você continua a atualizar a página várias vezes.
Outra forma de verificar é colocar um servidor da web off-line e verificar se outro servidor da web está atendendo às solicitações.
É tudo por agora! Experimente experimentar o HAProxy para saber mais sobre como funciona. Para e.g., podes tentar:
- Integrando diferentes servidores da web ao lado do nginx.
- Alterar o algoritmo de balanceamento de carga para algo diferente de round-robin.
- Configurando a verificação de integridade do HAProxy para determinar se um servidor back-end está funcionando ou não.
- Aplicar sessões persistentes para conectar um usuário ao mesmo servidor back-end.
- Usando estatísticas do HAProxy para obter informações sobre o tráfego nos servidores.
O HAProxy tem uma documentação extensa disponível para a edição da comunidade do HAProxy e a versão empresarial do HAProxy. Explore esta documentação para obter mais insights sobre como melhorar o desempenho e a confiabilidade de seu ambiente de servidor.
Este guia foi executado com sucesso no Debian 10 (Buster). Tente instalar o HAProxy em outras distros baseadas em Debian, como Ubuntu, Linux Mint, etc. Não se esqueça de compartilhar este guia com outras pessoas.