HaProxy é usado por sites populares como Tumblr, GitHub e StackOverflow. Neste guia, vamos guiá-lo pela instalação do HAProxy em uma configuração de servidores da web que usam Nginx.
Configuração do laboratório
3 instâncias de servidores CentOS 7, conforme mostrado
Endereços IP do nome do hostload_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
$ vim / etc / hosts3.19.229.234 server_01
3.17.9.217 servidor-02
Uma vez feito isso, salve as alterações e saia do arquivo de configuração.
Agora vá para 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 executar ping no balanceador de carga do server_01
E da mesma forma de 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á 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 updateEm seguida, instale HA Proxy conforme mostrado
# yum install haproxy
Após a instalação bem-sucedida, navegue até o diretório haproxy.
# cd / etc / haproxyA prática recomendada exige 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
vim haproxy.cfgCertifique-se de fazer a modificação conforme mostrado
#---------------------------------------------------------------------# Configurações globais
#---------------------------------------------------------------------
global
log 127.0.0.1 configuração local2 #Log
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
usuário haproxy #Haproxy em execução no usuário e grupo "haproxy"
grupo haproxy
demônio
# liga o socket unix de estatísticas
stats socket / var / lib / haproxy / stats
#---------------------------------------------------------------------
# padrões comuns que todas as seções 'ouvir' e 'backend' irão
# use se não for designado em seu bloco
#---------------------------------------------------------------------
padrões
modo http
log global
opção httplog
opção não reconhecida
opção http-server-close
opção encaminhar para exceto 127.0.0.0/8
opção redispatch
tentativas 3
tempo limite de solicitação de http 10s
tempo limite de espera 1m
tempo limite de conexão 10s
tempo limite do cliente 1m
servidor de timeout 1m
tempo limite http-keep-alive 10s
verificação de tempo limite 10s
maxconn 3000
#---------------------------------------------------------------------
#HAProxy Configuração de monitoramento
#---------------------------------------------------------------------
listen haproxy3-monitoring *: 8080 #Haproxy Monitoring executado na porta 8080
modo http
opção encaminhar para
opção httpclose
habilitar estatísticas
estatísticas show-legends
atualização de estatísticas 5s
stats uri / stats #URL para monitoramento HAProxy
stats realm Haproxy \ Statistics
stats auth Password123: Password123 # Usuário e senha para login no painel de monitoramento
administrador de estatísticas se TRUE
default_backend app-main #This é opcional para monitorar back-end
#---------------------------------------------------------------------
# Configuração FrontEnd
#---------------------------------------------------------------------
frontend principal
vincular *: 80
opção http-server-close
opção encaminhar para
default_backend app-main
#---------------------------------------------------------------------
# BackEnd round robin como algoritmo de equilíbrio
#---------------------------------------------------------------------
backend app-main
balance roundrobin #Balance algoritmo
opção httpchk HEAD / HTTP / 1.1 \ r \ nHost: \ localhost
#Verifique se o aplicativo do servidor está ativo e em boas condições - código de status 200
servidor server_01 3.19.229.234: 80 verifique # Nginx1
servidor server_02 3.17.9.217: 80 cheque # Nginx2
Certifique-se de modificar o nome do host do servidor web e os endereços IP 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.
# vim / etc / rsyslog.confCertifique-se de remover o comentário das linhas abaixo para permitir conexões UDP
$ ModLoad imudp$ UDPServerRun 514
Em seguida, prossiga e crie um novo arquivo de configuração haproxy.conf
# vim / etc / rsyslog.d / haproxy.confCole as seguintes linhas, salve e saia
local2.= info / var / log / haproxy-access.log # Para log de acessolocal2.aviso / var / log / haproxy-info.log #For Service Info - Back-end, loadbalancer
Para que as alterações tenham efeito, reinicie o daemon rsyslog conforme mostrado:
# systemctl restart rsyslogEm seguida, inicie e ative o HAProxy
# systemctl start rsyslog# systemctl enable rsyslog
Verifique se o HAProxy está em execução
# systemctl status rsyslog
Etapa 3: instalar e configurar o Nginx
Agora, a única parte que resta é a instalação do Nginx. Faça login em cada um dos servidores e primeiro atualize os pacotes do sistema:
# yum updateEm seguida, instale EPEL (pacotes extras para Enterprise Linux)
# yum install epel-releasePara instalar o Nginx, execute o comando:
# yum install nginxEm seguida, inicie e habilite o Nginx
# systemctl start nginx# systemctl enable nginx
Vamos então modificar o índice.arquivo html em ambos os casos, a fim de demonstrar ou simular como o balanceador de carga é capaz de distribuir o tráfego da web em ambos os servidores.
Para server_01
# echo "server_01. Ei ! Bem-vindo ao primeiro servidor web "> índice.htmlPara server_02
# echo "server_02. Ei ! Bem-vindo ao segundo servidor web "> índice.htmlPara que as alterações sejam efetuadas, reinicie o Nginx
# systemctl restart nginxEtapa 4: testar se o balanceador de carga está funcionando
Estamos finalmente no 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 do índice.html de server_01 e server_02
Agora vamos testar usando um navegador da web. Procure o endereço IP do seu balanceador de carga
http: // load-balancer-IP-addressA 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 conteúdo de outro servidor da web
Perfeito ! O equilíbrio de carga está distribuindo o tráfego IP igualmente entre os dois servidores da web !
Isso conclui este tutorial sobre como você pode instalar e configurar o HAProxy no CentOS 8. Seu feedback será muito apreciado.