Instale e configure o Haproxy no RHEL 8 / CENTOS 8 Linux

Instale e configure o Haproxy no RHEL 8 / CENTOS 8 Linux

Haproxy ou proxy de alta disponibilidade é um software de balanceador de carga e servidor proxy de código aberto e http http e software de servidor proxy. Haproxy foi escrito por Willy Tarreau em C, ele suporta SSL, Compressões, Formatos de Log Custom e Keep-Alive e Cabeçalho. Haproxy é um servidor de proxy rápido e leve e balanceador de carga com uma pequena pegada de memória e baixo uso da CPU. É usado por sites grandes como Github, Stackoverflow, Reddit, Tumblr, Twitter e outros. Tornou -se o software mais popular de balanceador de carga e servidor proxy nos últimos anos.

Neste tutorial, você passará pela instalação e configuração do Haproxy no RHEL 8 / CENTOS 8. Instalaremos o Haproxy em um único servidor e depois instalaremos o Nginx Web Server em outros servidores. Haproxy atuará como um balanceador de carga para os servidores da web nginx.

Neste tutorial, você aprenderá:

  • Arquitetura e conceitos de Haproxy
  • Configurar o arquivo hosts para resolução de nome
  • Instale e configure o Haproxy
  • Instale e configure nginx
  • Testando o recurso de balanceamento de carga
  • Acesse o URL do Haproxy Stats

Arquitetura Haproxy.

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema RHEL 8 / CENTOS 8
Programas Haproxy, nginx
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Arquitetura e conceitos de Haproxy

Haproxy pode ser executado em dois modos: camada de modo tcp 4 e http no modo camada 7. No modo TCP da camada 4, a HaProxy encaminha os pacotes TCP RAW do cliente para os servidores de aplicativos. No modo HTTP da camada 7, Haproxy está analisando o cabeçalho HTTP antes de encaminhá -los para os servidores de aplicativos. Neste tutorial, usaremos o nginx como o servidor da web que suporta o modo HTTP da camada 7.

Balanceamento de carga da camada 4. Balanceamento de carga da camada 7.



Algoritmo de equilíbrio é o algoritmo usado por Haproxy para selecionar o servidor ao fazer o balanceamento de carga. Os seguintes modos estão disponíveis:

Roundrobin

Este é o algoritmo de equilíbrio mais simples. Para cada nova conexão, ele será tratado pelo próximo servidor de back -end. Se o último servidor de back -end da lista for alcançado, ele começará novamente a partir do topo da lista de back -end.

MinamentoConn

A nova conexão será tratada pelo servidor de back -end com menor quantidade de conexões. Isso é útil quando a hora e a carga das solicitações variam muito.

Fonte

Isto é para sessões pegajosas, o IP do cliente será hashed para determinar o servidor de back -end que recebeu a última solicitação deste IP. Portanto, um IP A sempre será tratado pelo backend1, e o IP B sempre será tratado por Banckend2 para não interromper as sessões.

Configurar o arquivo hosts para resolução de nome

Faça login no servidor de balanceador de carga e edite o /etc/hosts Arquivo e Haproxy LoadBalancer, nginx1, nginx2 host Names. Copie o mesmo arquivo em outros dois nós nginx e verifique a conectividade de rede via ping comand.

# vim /etc /hosts
 192.168.1.108 LoadBalancer.exemplo.com 192.168.1.104 Nginx1.exemplo.com 192.168.1.105 Nginx2.exemplo.com 
cópia de

Instale e configure o Haproxy

O Haproxy está disponível no repositório RHEL 8 / CENTOS 8, por isso faça login no servidor LoadBalancer e instale o pacote haproxy com este comando yum.

# yum instalar haproxy

Uma vez instalado com sucesso, você pode usar o comando abaixo para verificar a instalação.

# yum info haproxy
# Yum Info Haproxy Atualizando repositórios de gerenciamento de assinatura. Atualizando repositórios de gerenciamento de assinaturas. Última expiração de metadados verificação: 0:06:03 atrás em sábado 16 de março de 2019 23:40:24 +04. Pacotes instalados Nome: Haproxy Versão: 1.8.14 Lançamento: 1.El8 Arch: x86_64 Tamanho: 4.1 m Fonte: Haproxy-1.8.14-1.EL8.src.RPM Repo: @system de repo: rhel-8-for-x86_64-Appstream-beta-rpms Resumo: Proxy reverso de Haproxy para Ambientes de Alta Disponibilidade URL: http: // www.Haproxy.Org/ Licença: GPLV2+ Descrição: Haproxy é um proxy reverso TCP/ HTTP, que é particularmente adequado para o Alto: Ambiente de Disponibilidade. De fato, ele pode :: - ROTAR solicitações HTTP, dependendo de cookies atribuídos estaticamente: - Espalhe a carga entre vários servidores, garantindo a persistência do servidor: através do uso de cookies HTTP: - Alterne para servidores de backup no evento que um principal falha: - Aceitar conexões Para portas especiais dedicadas ao monitoramento de serviços: - Pare de aceitar conexões sem quebrar as existentes: - Adicionar, modificar e excluir cabeçalhos HTTP em ambas as direções: - Bloco solicitações correspondentes a padrões específicos: - Relate status detalhado a usuários autenticados de um URI: interceptado de de a aplicação 

Quando a instalação terminar, vá para o /etc/haproxy/ diretório e backup do arquivo de configuração original.



# cd/etc/haproxy/ # cp haproxy.CFG Haproxy.cfg.orig 

Em seguida, faça as mudanças abaixo no arquivo de configuração do Haproxy Haproxy.cfg com qualquer editor.

#--------------------------------------------------- ---------------------- # Exemplo Configuração para um possível aplicativo da Web. Veja as opções de configuração completas online. # # https: // www.Haproxy.org/download/1.8/doc/configuração.TXT # #----------------------------------------------- ------------------------ #--------------------------- ------------------------------------------ # Configurações globais #---- -------------------------------------------------------- --------------- # Global para que essas mensagens acabem em/var/log/haproxy.LOG Você precisará: # # 1) Configurar syslog para aceitar eventos de log de rede. Isso é feito # adicionando a opção '-r' à syslogl_options em #/etc/sysconfig/syslog # 2) Configure eventos locais para ir para/var/log/haproxy.arquivo de log. Uma linha como a seguinte pode ser adicionada a #/etc/sysconfig/syslog # # local2.*/var/log/haproxy.LOG # LOG 127.0.0.1 local2 chroot/var/lib/haproxy pidfile/var/run/haproxy.PID maxconn 4000 user Haproxy Grupo Haproxy Daemon # Ligue o soquete STATS unix Socket STACK = Sistema #----------------------------------------------- ----------------- -------------------------------------------------------- ----------------- Modo padrão HTTP LOG GLOBAL OPÇÃO HTTPLOG Option DontLognull Opção http-server-close Opção Avançando, exceto 127.0.0.0/8 Opção RECERTATCH EXECUTAS 3 Tempo limite HTTP-REQUESTE 10S Fila de tempo limite 1M Timeout Conectar 10s Timeout Cliente 1M Timeout Server 1M Timeout -------------------------------------------------------- -------- # Haproxy Monitoring Config # ----------------------------------------- -------------------------------- Ouça as estatísticas Bind LoadBalancer.exemplo.com: 8080 # monitoramento de haproxy Executar na porta 8080 Opção HTTP Avanço Para a opção de opção httpclose STATS Ativar estatísticas mostram estatísticas de estatísticas 5s estatísticas URI /estatísticas # URL para Haproxy Monitorando estatísticas Realm haproxy \ statistics estatísticas Auth Admin: User e senha para Login para o painel de monitoramento #stats admin se true default_backend loadbalancer #Isso é opcionalmente para monitorar o back-end #--------------------------------- --------------------- -------------------------------------------------------- ------------------ Frontend LoadBalancer Bind LoadBalancer.exemplo.com: 80 #acl url_static path_beg -i /static /imagens /javascript /stylesheets #acl url_static path_end -i .jpg .gif .png .CSS .js #use_backend static se url_static opção http-server-close opção para a frente para default_backend loadBalancer #------------------------------------- -------------------------------------- # Back-end estático para servir imagens, folhas de estilo e tal #- -------------------------------------------------------- -----------.0.0.1: 4331 Verifique #--------------------------------------------- ------------------- -------------------------------------------------------- - Balancer de back-end Balancer Roundrobin # Balance Algorithm Opção Httpchk Head / HTTP / 1.1 \ r \ nhost: \ localhost # Verifique se o aplicativo do servidor está em alta e cura - 200 Código de status Nginx1.exemplo.com 192.168.1.104: 80 Verifique # Nginx Server1 Server Nginx2.exemplo.com 192.168.1.105: 80 Verifique # NGNIX Server2 

Salve este arquivo de configuração e saída.

Agora, configuraremos o daemon rsysLog para registrar as estatísticas do Haproxy. Editar o rsyslog.conf arquivo para ativar a porta UDP 514 a ser usada pelo RSYSLOG. Abra o arquivo de configuração do RSYSLOG e o descommentação das linhas para ativar a conexão UDP.

# vim /etc /rsyslog.conf
Módulo (load = "imudp") # precisa ser feito apenas uma vez que a entrada (type = "imudp" porta = "514") 

Salve o arquivo com alterações acima e saia. Em seguida, crie um novo arquivo de configuração do Haproxy para o RSYSLog e adicione as entradas abaixo nesse arquivo.

# cd /etc /rsyslog.d/ # vi haproxy.conf 
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 

Agora reinicie o RSYSLog e inicie o serviço Haproxy e adicione o Haproxy para começar na hora da inicialização.

# SystemCtl Restart rsyslog # SystemCtl Iniciar Haproxy # SystemCtl Ativar haproxy 

Instale e configure nginx

O nginx já é a parte do repo Rhel 8 / CentOS 8 existente e pode ser instalado com o seguinte comando.

# yum install nginx

Uma vez instalado, você pode verificar a instalação com a ajuda deste comando.

# yum info nginx


# yum info nginx atualizando repositórios de gerenciamento de assinatura. Atualizando repositórios de gerenciamento de assinaturas. Última expiração de metadados verificação: 0:06:14 atrás em sábado 16 de março de 2019 23:40:24 +04. Pacotes instalados Nome: Nginx Epoch: 1 Versão: 1.14.0 Lançamento: 3.EL8+1631+BA902CF0 ARCH: X86_64 Tamanho: 568 K Fonte: Nginx-1.14.0-3.EL8+1631+BA902CF0.src.RPM Repo: RHEL-8-F-X86_64-APPSTREAM-BETA-RPMS Resumo: Um servidor da Web de alto desempenho e URL do servidor proxy reverso: http: // nginx.Org/ Licença: BSD Descrição: Nginx é um servidor da Web e um servidor proxy reverso para HTTP, SMTP, POP3 e: Protocolos IMAP, com um forte foco em alta concorrência, desempenho e baixo: uso de memória. 

Quando o Nginx estiver instalado, vá para o diretório da web e altere o índice.html arquivar de acordo. Verifique se você está fazendo as etapas abaixo no Nginx1 e Nginx2 Server.

# cd/usr/share/nginx/html # ls -lrth total 20k -rw-r--r--. 1 raiz da raiz 2.8k 31 de outubro de 2016 Poweedby.png -rw-r-r--. 1 raiz raiz 368 out 31 de outubro 2016 nginx-logo.png -rw-r-r--. 1 raiz da raiz 3.7k mar 16 20:39 50x.html -rw-r-r--. 1 raiz da raiz 3.6k mar 16 20:39 404.html -rw-r-r--. 1 raiz da raiz 3.7K Mar 16 20:42 ÍNDICE.html 

Em seguida, adicione o nginx para iniciar na hora da inicialização e inicie o daemon com os comandos abaixo.

# SystemCtl Ativar nginx # SystemCtl Iniciar nginx 

Testando o recurso de balanceamento de carga

Os testes podem ser feitos na Breating and Access the LoadBalancer IP 192.168.1.108 (para o meu caso) e você verá uma vez que vai para o Nginx Node1 e a segunda vez que vai para o Nginx Node2 de maneira redonda.

Página da web no Nginx Node1. Página da web no nginx node2.

Você também pode verificar o /var/log/haproxy-access.registro Para obter as informações detalhadas sobre o balanceamento de carga.

Acesse o URL do Haproxy Stats

Acesse o painel do Haproxy Statistical Report, que está sendo executado na porta 8080 com nome de usuário e senha definidos em Haproxy.cfg arquivo.



http: // 192.168.1.108: 8080/estatísticas
Access Haproxy STATS URL. Painel do Haproxy Stats.

Haproxy está funcionando com sucesso e atua como um balanceador de carga para os dois servidores da Web Nginx.

Conclusão

Haproxy ou alta disponibilidade proxy é um software de código aberto que fornece alta disponibilidade para serviços baseados em TCP, ele opera como balanceador de carga HTTP e servidor de proxy. O software é escrito em C e suporta SSL, Keep-Alive e Compressão. Haproxy é a escolha certa para todos que precisam de um balanceador de carga e servidor proxy que seja rápido e leve com uma pequena pegada de memória e baixo uso da CPU. Haproxy pode ser executado no modo TCP da camada 4 e no modo HTTP da camada 7. Nginx suporta apenas o modo HTTP da camada 7 com haproxy. Se você deseja usar o modo TCP da camada 4, pode usar outros servidores da Web como o Apache. No RHEL 8 / CENTOS 8 Linux, o Haproxy está disponível no repositório padrão. É fácil instalar e configurar.

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Comparando Linux Apache Prefork vs Worker MPMS
  • Ubuntu 20.04 WordPress com instalação do Apache
  • Ubuntu 20.04: WordPress com instalação nginx
  • Download do Linux
  • Crie redirecionar e reescrever regras para .htaccess no apache…
  • Com que frequência você tem que reiniciar seu servidor Linux?