HAProxy

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
Proxy de alta disponibilidade, também abreviado como HAProxy, é um balanceador de carga leve e rápido que também funciona como um servidor proxy. Como um 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 certos critérios. Ao fazer isso, ele 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 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 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 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 / hosts
3.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 carga

Depois 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 update

Em seguida, instale HA Proxy conforme mostrado

# yum install haproxy

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

# cd / etc / haproxy

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

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

vim haproxy.cfg

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

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

Cole as seguintes linhas, salve e saia

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

Em 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 update

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

# yum install epel-release

Para instalar o Nginx, execute o comando:

# yum install nginx

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

Para server_02

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

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

# systemctl restart nginx

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

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

Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...