HaProxy é usado por sites populares como Tumblr, GitHub e StackOverflow. Neste guia, iremos conduzi-lo através da instalação do HAProxy em uma configuração de servidores web que usam Nginx.
Configuração do laboratório
3 instâncias de servidores CentOS 7 conforme mostrado
Nome do host Endereços IP
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
Etapa 1: Edite o arquivo /etc/hosts para o balanceador de carga
Para começar, faça login no sistema do balanceador de carga e modifique o arquivo /etc/hosts para incluir os nomes de host e endereços IP dos dois servidores da Web, conforme mostrado
$ Porque / etc / anfitriões
3.19.229.234 servidor_01
3.17.9.217 servidor-02
Feito isso, salve as alterações e saia do arquivo de configuração.
Agora dirija-se a cada um dos servidores da web e atualize o /etc/hosts arquivo com o endereço IP e o nome do host do balanceador de carga
3.17.12.132 balanceador de cargaDepois disso, confirme se você pode dar um ping no balanceador de carga de server_01
E da mesma forma do server_02
Além disso, certifique-se de que você pode executar ping nos servidores do balanceador de carga.
Perfeito ! todos os servidores podem se comunicar com o balanceador de carga!
Etapa 2: instalar e configurar HA Proxy no balanceador de carga
Como o HA Proxy está prontamente disponível no repositório oficial do CentOS, vamos instalá-lo usando o gerenciador de pacotes yum ou dnf.
Mas como sempre, atualize o sistema primeiro
# yum atualizaçãoEm seguida, instale o HA Proxy como mostrado
# yum instalar haproxyApós a instalação bem-sucedida, navegue até o diretório haproxy.
# cd / etc / haproxyAs melhores práticas exigem que façamos backup de qualquer arquivo de configuração antes de fazer qualquer modificação. Então faça backup do haproxy.cfg arquivo renomeando-o.
# mv haproxy.cfg haproxy.cfg.bakEm seguida, prossiga e abra o arquivo de configuração
Porque haproxy.cfgCertifique-se de fazer a modificação conforme mostrado
#------------------------------------------------- --------------------# Configurações globais
#------------------------------------------------- --------------------
global
registro 127.0.0.1 local2 #Configuração de log
chroot / estava / lib / haproxy
pidfile / estava / corre / haproxy.pid
maxconn 4000
usuário haproxy #Haproxy rodando sob usuário e grupo 'haproxy'
grupo haproxy
daemon
# ativa o stats unix socket
soquete de estatísticas / estava / lib / haproxy / Estatísticas
#------------------------------------------------- --------------------
# padrões comuns que todas as seções 'listen' e 'backend' irão
# use se não for designado em seu bloco
#------------------------------------------------- --------------------
padrões
modo http
registro global
opção httplog
opção dontlognull
opção http-server-close
opção encaminhar para exceto 127.0.0.0 / 8
opção reenvio
novas tentativas 3
solicitação http de tempo limite 10s
fila de tempo limite 1m
tempo limite de conexão 10s
tempo limite do cliente 1m
servidor de tempo limite 1m
tempo limite http-keep-alive 10s
verificação de tempo limite 10s
maxconn 3000
#------------------------------------------------- --------------------
Configuração de monitoramento #HAProxy
#------------------------------------------------- --------------------
ouvir haproxy3-monitoramento * : 8080 #Haproxy Monitoramento executado na porta 8080
modo http
opção encaminhar para
opção httpfechar
Estatísticas habilitar
estatísticas show-legends
atualização de estatísticas 5s
url de estatísticas / Estatísticas #URL para monitoramento HAProxy
domínio de estatísticas Haproxy\ Estatísticas
autenticação de estatísticas Senha123: Senha123 #Usuário e Senha para login no painel de monitoramento
administrador de estatísticas E se VERDADE
default_backend app-main #Isso é opcional para monitoramento de back-end
#------------------------------------------------- --------------------
# Configuração de front-end
#------------------------------------------------- --------------------
front-end principal
ligar * : 80
opção http-server-close
opção encaminhar para
default_backend app-main
#------------------------------------------------- --------------------
# BackEnd round robin como algoritmo de balanceamento
#------------------------------------------------- --------------------
back-end app-main
equilíbrio roundrobin #Algoritmo de equilíbrio
opção httpchk HEAD / HTTP / 1.1 \r\nHost:\ localhost
#Verifique se o aplicativo do servidor está ativo e saudável - código de status 200
servidor server_01 3.19.229.234: 80 Verifica #Nginx1
servidor server_02 3.17.9.217: 80 Verifica #Nginx2
Certifique-se de modificar o nome de host e os endereços IP dos servidores da Web, conforme indicado nas duas últimas linhas. Salve as alterações e saia.
A próxima etapa será configurar o Rsyslog para poder registrar as estatísticas do HAProxy.
# Porque / etc / rsyslog.confCertifique-se de descomentar as linhas abaixo para permitir conexões UDP
$ModLoad imudp$UDPServerRun 514
Em seguida, prossiga e crie um novo arquivo de configuração haproxy.conf
# Porque / etc / rsyslog.d / haproxy.confCole as seguintes linhas, salve e saia
local2.=info / estava / registro / haproxy-access.log #Para log de acessolocal2.aviso / estava / registro / haproxy-info.log #Para informações de serviço - back-end, balanceador de carga
Para que as alterações entrem em vigor, reinicie o daemon rsyslog conforme mostrado:
# systemctl reiniciar rsyslogEm seguida, inicie e habilite o HAProxy
# systemctl inicia rsyslog# systemctl habilita rsyslog
Verifique se o HAProxy está em execução
# systemctl status rsyslogEtapa 3: instalar e configurar o Nginx
Agora, a única parte restante é a instalação do Nginx. Faça login em cada um dos servidores e primeiro atualize os pacotes do sistema:
# yum atualizaçãoEm seguida, instale EPEL (Pacotes extras para Enterprise Linux)
# yum instalar liberação quentePara instalar o Nginx, execute o comando:
# yum instalar nginxEm seguida, inicie e habilite o Nginx
# systemctl inicia o nginx# systemctl ativa o nginx
Em seguida, modificaremos o arquivo index.html em ambos os casos para demonstrar ou simular como o balanceador de carga é capaz de distribuir o tráfego da web em ambos os servidores.
Para servidor_01
# eco 'server_01. Ei! Bem-vindo ao primeiro servidor web' > index.htmlPara servidor_02
# eco 'server_02. Ei! Bem-vindo ao segundo servidor web' > index.htmlPara que as alterações sejam efetivadas, reinicie o Nginx
# systemctl reiniciar nginxEtapa 4: testar se o balanceador de carga está funcionando
Finalmente chegamos ao ponto em que queremos ver se a configuração está funcionando. Portanto, faça login no balanceador de carga e execute o comando curl repetidamente
# curl 3.17.12.132Você deve obter uma saída alternada no terminal mostrando o valor de index.html de server_01 e server_02
Agora vamos testar usando um navegador da web. Navegue pelo endereço IP do balanceador de carga
http: // endereço IP do balanceador de cargaA primeira página exibirá o conteúdo de qualquer um dos servidores da web
Agora atualize a página da web e verifique se ela exibe o conteúdo do outro servidor da web
Perfeito ! O balanceamento de carga está distribuindo o tráfego IP igualmente entre os dois servidores web!
Isso encerra este tutorial sobre como você pode instalar e configurar o HAProxy no CentOS 8. Seus comentários serão muito apreciados.