Como configurar o balanceador de carga Haproxy no Ubuntu 18.04 e 16.04

Como configurar o balanceador de carga Haproxy no Ubuntu 18.04 e 16.04

Haproxy é uma solução muito rápida e confiável para alta disponibilidade, balanceamento de carga, ele suporta aplicativos baseados em TCP e HTTP. Atualmente, maximizando os sites de tempo de subida é muito crucial para sites de tráfego pesado. Isso não é possível com a configuração de servidor único. Em seguida, precisamos de algum ambiente de alta disponibilidade que possa gerenciar facilmente com falha de servidor único.

Este artigo ajudará você a configurar o ambiente de balanceamento de carga Haproxy no Ubuntu, Debian e Linuxmint. Isso vai configurar um Balanceamento de carga da camada 4 (Camada de transporte). Que equilibrarão as solicitações de carregamento e transferência para servidores diferentes-2 com base no endereço IP e nos números de porta.

Detalhes da rede -

Abaixo está o nosso servidor de rede. Existem 3 servidores da Web em execução com o Apache2 e ouvindo na porta 80 e um servidor Haproxy.

Detalhes do servidor da web: Servidor 1: Web1.exemplo.com 192.168.1.101 Servidor 2: Web2.exemplo.com 192.168.1.102 Servidor 3: Web3.exemplo.com 192.168.1.103 Servidor Haproxy:  Haproxy: Haproxy 192.168.1.12 

Etapa 1 - Instale o Haproxy

Agora comece a configuração. SSH para o seu servidor Haproxy como um usuário privilegiado e instale o Haproxy usando os seguintes comandos.

sudo add-aprop-repository ppa: vbernat/haproxy-1.8 sudo apt-get update sudo apt-get install haproxy 

Etapa 2 - Configure o balanceamento de carga do haproxy

Agora edite o arquivo de configuração padrão do Haproxy /etc/haproxy/haproxy.cfg e inicie a configuração.

sudo vi/etc/haproxy/haproxy.cfg 

Configurações padrão:

Você encontrará alguma configuração padrão, como abaixo. Se você não tem idéia suficiente sobre isso, pode manter como é.

LOG GLOBAL/DEV/LOG LOCAL0 LOG/DEV/LOG LOCAL1 AVISO CHROOT/VAR/LIB/HAPROXY STACK.Modo de meia 660 Nível de administrador Timeout 30s Usuário Haproxy Group Haproxy Daemon # Locais de material SSL padrão Ca-Base/etc/ssl/certs CRT-Base/etc/ssl/privado # cifras padrão para usar em soquetes de escuta habilitados para SSL. # Para mais informações, consulte Ciphers (1SSL). Esta lista é de: # https: // hynek.me/artigos/endurecimento-your-web-servers-ssl-ciphers/ssl-default-bind-ciphers ecdh+aesgcm: dh+aesgcm: ecdh+aes256 :: rsa+aes: rsa+3des:!Anull:!MD5:!DSS SSL-Default-Bind-Options No-SSLV3 Padrão Log Modo Global HTTP Option HTTPLOG Timeout DontLognull Conectar 5000 Timeout Cliente 50000 Timeout Server 50000 Errorfile 400/etc/haproxy/erros/400.HTTP ERRORFILE 403/etc/HAPROXY/ERROS/403.HTTP ERRORFILE 408/etc/HAPROXY/ERROS/408.HTTP Errorfile 500/etc/Haproxy/erros/500.HTTP Errorfile 502/etc/Haproxy/erros/502.HTTP Errorfile 503/etc/Haproxy/erros/503.HTTP Errorfile 504/etc/Haproxy/erros/504.http 

Adicionando ouvinte Haproxy:

Agora diga a Haproxy para onde ouvir novas conexões. De acordo com a configuração abaixo.168.1.12 Endereço IP.

Frontend Local_server Bind 192.168.1.12:80 Modo HTTP Default_backend My_Web_servers 

Adicione servidores da web de back -end:

De acordo com a configuração acima, o Haproxy agora está ouvindo na porta 80. Agora defina os servidores da Web de back -end, onde o Haproxy envia a solicitação.

Modo de back-end Modo HTTP Balance Roundrobin Opção Avançando para HTTP-Request Chefe-cabeçalho X Forwarded-Port %[dst_port] http-request add-thebt x-forwarded-proto https se ssl_fc opção httpchk cabeça / http / 1.1rnhost: localhost servidor web1.exemplo.com 192.168.1.101: 80 servidor web2.exemplo.com 192.168.1.102: 80 servidor web3.exemplo.com 192.168.1.103: 80 

Ativar estatísticas (opcional)

Agora, se você quiser, pode ativar as estatísticas do Haproxy adicionando a seguinte configuração no arquivo de configuração do Haproxy.

Ouça as estatísticas *: 1936 Estatísticas Ativar estatísticas de ocultar estatísticas de versões Atualização 30s estatísticas mostram estatísticas de nó auth auth: senha estatísticas 

Etapa 3 - arquivo de configuração final do Haproxy

O arquivo de configuração final pode parecer abaixo:

LOG GLOBAL/DEV/LOG LOCAL0 LOG/DEV/LOG LOCAL1 AVISO CHROOT/VAR/LIB/HAPROXY STACK.Modo de meia 660 Nível de administrador Timeout 30s Usuário Haproxy Group Haproxy Daemon # Locais de material SSL padrão Ca-bas das cifras/etc/ssl/certs crt-base/etc/ssl/privado # cifras padrão para usar em soquetes de escuta habilitados para SSL. # Para mais informações, consulte Ciphers (1SSL). Esta lista é de: # https: // hynek.me/artigos/endurecimento-your-web-servers-ssl-ciphers/ssl-default-bind-ciphers ecdh+aesgcm: dh+aesgcm: ecdh+aes256 :: rsa+aes: rsa+3des:!Anull:!MD5:!DSS SSL-Default-Bind-Options No-SSLV3 Padrão Log Modo Global HTTP Option HTTPLOG Timeout DontLognull Conectar 5000 Timeout Cliente 50000 Timeout Server 50000 Errorfile 400/etc/haproxy/erros/400.HTTP ERRORFILE 403/etc/HAPROXY/ERROS/403.HTTP ERRORFILE 408/etc/HAPROXY/ERROS/408.HTTP Errorfile 500/etc/Haproxy/erros/500.HTTP Errorfile 502/etc/Haproxy/erros/502.HTTP Errorfile 503/etc/Haproxy/erros/503.HTTP Errorfile 504/etc/Haproxy/erros/504.Frontend HTTP Local_server Bind 192.168.1.12:80 Modo http default_backend my_web_servers backend backend my_web_servers Modo http balance redondrobin opção para http-request set header x-forwarded-port %[dst_port] http-request header xforwerd-proto httpsps ift  Http/1.1rnhost: localhost servidor web1.exemplo.com 192.168.1.101: 80 servidor web2.exemplo.com 192.168.1.102: 80 servidor web3.exemplo.com 192.168.1.103: 80 Ouça estatísticas *: 1936 Estatísticas Ativar estatísticas estatísticas de hide-version estatísticas 30s estatísticas mostram estatísticas de nó de autenticação nome de usuário: estatísticas de senha URI /estatísticas 

Etapa 4 - Reinicie o Haproxy

Agora você fez todas as mudanças necessárias em seu servidor Haproxy. Agora verifique o arquivo de configuração antes de reiniciar o serviço usando o seguinte comando.

Haproxy -c -f/etc/haproxy/haproxy.cfg 

Se o comando acima retornar a saída como arquivo de configuração for válido, reinicie o serviço haproxy

SUDO Service Haproxy Reiniciar 

Etapa 5 - Verifique a configuração do Haproxy

Nesta fase, temos uma configuração de haproxy funcional completa. Em cada nó do servidor da web, tenho um índice de demonstração.Página HTML mostrando o nome dos servidores, para que possamos diferenciar facilmente entre os servidores páginas da web.

Agora acesse a porta 80 no IP 192.168.1.12 (conforme configurado acima) no navegador da web e pressione a atualização. Você verá que o Haproxy está enviando solicitações para servidores de back-end um por um (conforme o algoritmo Round-Robin).

A cada atualização, o Haproxy está enviando solicitação um a um para um servidor de back -end.

Referência: http: // www.Haproxy.org/download/1.5/doc/configuração.TXT