Como configurar o HAProxy como balanceador de carga para Nginx no CentOS 8

Como Configurar O Haproxy Como Balanceador De Carga Para Nginx No Centos 8



O High Availability Proxy, também abreviado 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 de entrada em vários servidores da Web usando determinados critérios. Ao fazer isso, garante alta disponibilidade e tolerância a falhas caso haja muitas solicitações simultâneas que possam sobrecarregar um único servidor da web.

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 carga

Depois 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ção

Em seguida, instale o HA Proxy 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ç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.bak

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

Porque haproxy.cfg

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

# Porque / etc / rsyslog.d / haproxy.conf

Cole as seguintes linhas, salve e saia

local2.=info / estava / registro / haproxy-access.log #Para log de acesso
local2.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 rsyslog

Em seguida, inicie e habilite o HAProxy

# systemctl inicia rsyslog
# systemctl habilita rsyslog

Verifique se o HAProxy está em execução

# systemctl status rsyslog

Etapa 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ção

Em seguida, instale EPEL (Pacotes extras para Enterprise Linux)

# yum instalar liberação quente

Para instalar o Nginx, execute o comando:

# yum instalar nginx

Em 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.html

Para servidor_02

# eco 'server_02. Ei! Bem-vindo ao segundo servidor web' > index.html

Para que as alterações sejam efetivadas, reinicie o Nginx

# systemctl reiniciar nginx

Etapa 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.132

Você 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 carga

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