Como configurar o Haproxy como balanceador de carga para o nginx no CentOS 8

Como configurar o Haproxy como balanceador de carga para o nginx no CentOS 8
A alta disponibilidade proxy, também abreviada como Haproxy é um balanceador de carga leve e rápido que também funciona como um servidor proxy. Como balanceador de carga, ele desempenha um papel crucial na distribuição do tráfego da Web em vários servidores da Web usando determinados critérios. Ao fazer isso, garante alta disponibilidade e tolerância a falhas no caso de haver muitas solicitações simultâneas que podem sobrecarregar um único servidor da web.

Haproxy é usado por sites populares, como Tumblr, Github e Stackoverflow. Neste guia, vamos levá -lo pela instalação do Haproxy em uma configuração de servidores da web que são alimentados usando Nginx.

Configuração do laboratório

3 instâncias de servidores do CentOS 7, como mostrado

Endereços IP do nome do host
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 de balanceador de carga e modifique o arquivo /etc /hosts para incluir os nomes de host e endereços IP dos dois servidores da Web, como mostrado

$ vim /etc /hosts
3.19.229.234 Server_01
3.17.9.217 Servidor-02

Uma vez feito, 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 Balancer de carga

Depois disso, confirme que você pode ping no balanceador de carga do Server_01

E da mesma forma do servidor_02

Além disso, verifique se você pode ping nos servidores do balanceador de carga.

Perfeito ! Todos os servidores podem se comunicar com o balanceador de carga!

Etapa 2: Instale e configure o proxy HA 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ção

Em seguida, instale o proxy HA como mostrado

# yum instalar haproxy

Após a instalação bem -sucedida, navegue até o diretório Haproxy.

# cd /etc /haproxy

As melhores práticas exigem que faça backup de qualquer arquivo de configuração antes de fazer modificações. Então, faça backup do Haproxy.cfg Arquivo renomeando -o.

# MV Haproxy.CFG Haproxy.cfg.Bak

Em seguida, prossiga e abra o arquivo de configuração

vim haproxy.cfg

Certifique -se de fazer a modificação como 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 sob o usuário e grupo "Haproxy"
Grupo Haproxy
Daemon
# Ligue o soquete do Unix Stats Unix
estatísticas soquete/var/lib/haproxy/estatísticas
#---------------------------------------------------------------------
# Padrões comuns de que todas as seções 'ouvir' e 'back -end' vão
# Use se não for designado em seu bloco
#---------------------------------------------------------------------
padrões
modo http
log global
Opção httplog
Opção dontLognull
Opção HTTP-SERVER Close
opção a seguir, exceto 127.0.0.0/8
Opção RECREVELA
EXECUTAS 3
Tempo limite HTTP-REQUEST 10S
Fila de tempo limite 1M
Timeout Connect 10s
Cliente de tempo limite 1M
Timeout Server 1M
Timeout HTTP-Keep-Alive 10s
Timeout Verifique 10s
Maxconn 3000
#---------------------------------------------------------------------
#Haproxy Monitoring Config
#---------------------------------------------------------------------
Ouça Haproxy3-Monitoring *: 8080 #Haproxy Monitoring Run na porta 8080
modo http
option forwardfor
opção httpclose
Estatísticas Ativar
Estatísticas mostram lendas
STATS Atualizar 5s
Estatísticas URI /STATS #URL para monitoramento de Haproxy
Estatísticas Realm Haproxy \ Statistics
Estats Auth Password123: Password123#Usuário e senha para fazer login no painel de monitoramento
estatísticas admin se true
Default_backend App-Main #Isso é opcionalmente para monitorar o back-end
#---------------------------------------------------------------------
# Configuração do front -end
#---------------------------------------------------------------------
Frontend Main
Bind *: 80
Opção HTTP-SERVER Close
option forwardfor
default_backend app-main
#---------------------------------------------------------------------
# Back -end Round Robin como algoritmo de equilíbrio
#---------------------------------------------------------------------
back-end app-main
Balance Roundrobin #Falance Algorithm
opção httpchk cabeça / http / 1.1 \ r \ nhost: \ localhost
#Verifique se o aplicativo do servidor está em alta e a cura - 200 Código de status
Servidor servidor_01 3.19.229.234: 80 Verifique #nginx1
Servidor servidor_02 3.17.9.217: 80 Verifique #nginx2

Certifique -se de modificar o nome do host dos servidores da web e os endereços IP, conforme indicado nas duas últimas linhas. Salve as mudanças e saia.

O próximo passo será configurar o RSYSLog para poder registrar estatísticas de Haproxy.

# vim /etc /rsyslog.conf

Certifique -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

# vim /etc /rsyslog.D/Haproxy.conf

Cole as seguintes linhas, salvar e sair

Local2.= info/var/log/haproxy-access.LOG #para acessar log
Local2.aviso/var/log/haproxy-info.Log #para informações de serviço - back -end, LoadBalancer

Para que as alterações entrem em vigor reinicie o daemon rsysLog como mostrado:

# SystemCtl Reiniciar rsysLog

Em seguida, inicie e habilite o haproxy

# SystemCtl Iniciar o RSYSLOG
# SystemCtl Ativar rsysLog

Verifique se Haproxy está funcionando

# status systemctl rsyslog

Etapa 3: Instale e configure o nginx

Agora, a única parte restante é a instalação do nginx. Faça login em cada um dos servidores e atualize primeiro os pacotes do sistema:

# yum atualização

Em seguida, instale o EPEL (pacotes extras para o Enterprise Linux)

# Yum Instale o lançamento de Epel

Para instalar o nginx, execute o comando:

# yum install nginx

Em seguida, inicie e habilite o nginx

# SystemCtl Iniciar nginx
# SystemCtl Ativar nginx

Então vamos modificar o índice.Arquivo 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

# echo "server_01. Ei ! Bem -vindo ao primeiro servidor da web "> índice.html

Para servidor_02

# echo "server_02. Ei ! Bem -vindo ao segundo servidor da web "> índice.html

Para que as mudanças sejam efetuadas, reinicie o nginx

# SystemCtl Reiniciar nginx

Etapa 4: testando se o balanceador de carga está funcionando

Finalmente estamos 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.132

Você deve obter 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. Navegue pelo endereço IP do balanceador de carga

http: // load-balancer-ip-address

A 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 balanço de carga está distribuindo o tráfego de IP igualmente entre os dois servidores da Web !
Isso encerra este tutorial sobre como você pode instalar, bem como configurar o Haproxy no CentOS 8. Seu feedback será muito apreciado.