Como configurar HAProxy Load Balance Server para compartilhamento de Web Traffic

A+ A-
Este artigo é escrito para preparar a alta disponibilidade de um site. Isso também pode ser usado por aqueles que querem o seu site estar disponível para os seus clientes ou usuários com servidores de alta disponibilidade e para compartilhar entre seus servidores. É um aplicativo gratuito e de código aberto usado como um balanceador de carga de TCP / HTTP que irá distribuir o tráfego web para vários servidores e melhora o desempenho ea confiabilidade do servidor web.

Instalação

Suponha que balanceador de carga HA proxy de endereço IP do servidor é http://192.167.57.150

detalhes HAProxy Servidor

OS: Centos 6,7
Endereço IP: 192.168.57.150

WebServer1

OS: Centos 6,7
Endereço IP: 192.168.57.147

webserver2

OS: Centos 6,7
Endereço IP: 192.168.57.148

Precisamos instalar o Apache em ambos os servidores web, ou seja, 192.168.57.151 e 192.168.57.152.

 # Yum install http * 

Após a instalação, acesse o Apache em http navegador web: // seu-servidor-ip-address

Instalar Servidor HAProxy

 # Yum install haproxy openssl-devel 

Abra os arquivos de host e adicione as linhas abaixo em todos os 3 servidores (HAProxy balanceador de carga, webserver1, webserver2)

192.168.87.150 haproxy.demo.com haproxy
192.168.87.151 webserv1.demo.com haproxy
192.168.87.152 webserv2.demo.com haproxy

 # vi / etc / hosts 
 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.87.150 haserver.cgi.com haserver
192.168.87.151 ha2.cgi.com ha2
192.168.87.152 ha1.cgi.com HA1 

Agora, você precisa habilitar os logs HAProxy para identificar os problemas para a sua depuração futuras

 # Vi /etc/haproxy/haproxy.cfg 

Adicione estas linhas a seguir para permitir o registro

 log 127.0.0.1 locais necessárias para permitir a recepção UDP SYSLOG em /etc/rsyslog.conf
 # Vi /etc/rsyslog.conf 
 #### MÓDULOS DE ####

$ ModLoad imuxsock # fornece suporte para o log do sistema local (por exemplo, através do comando logger)
$ ModLoad imklog # fornece suporte de registro kernel (anteriormente feito por rklogd)
# $ ModLoad immark # fornece --MARK-- capacidade de mensagem

# Fornece recepção syslog UDP
$ ModLoad imudp
$ 514 UDPServerRun

# Fornece recepção SYSLOG TCP
# $ ModLoad imtcp
# $ InputTCPServerRun 514 

Agora crie uma haproxy.conf na pasta /etc/rsyslog.d/ para criar arquivos de log

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

Adicione a linha a seguir para criar o arquivo

 local. * /var/log/haproxy.log 

Reinicie os serviços rsyslog para atualizar as mudanças que fizemos

 restart # service rsyslog 

Configurando definições globais HAProxy

 que precisávamos para configurar a configuração de /etc/haproxy/haproxy.cfg glogal
# Vi /etc/haproxy/haproxy.cfg
# ------------------------------------------------- --------------------
# padrões comuns que todos os "ouvir" e seções "back-end" vontade
# Use se não for designado no seu bloco
# ------------------------------------------------- --------------------
defaults
    modo http
    log mundial
    opção HTTPLOG
    opção dontlognull
    opção http-server-close
    opção forwardfor exceto 127.0.0.0/8
    opção redespacho
    repete 3
    tempo limite 10s http-request
    1m fila de tempo limite
    tempo limite de conexão 10s
    1m cliente tempo limite
    1m servidor tempo limite
    tempo limite http-keep-alive 10s
    10s de verificação de tempo limite
    maxconn 3000

Temos de fornecer os detalhes de ambos os servidores web como front-end e back-end servidores em caso de falha.

 frontend LB
   vincular 192.168.87.150:80
   reqadd X-transmitido-Proto: http
   default_backend LB

backend LB 192.168.87.150:80
   modo http
   estatísticas permitir
   Estatísticas hide-versão
   Estatísticas uri / stats
   reino estatísticas Haproxy Estatísticas
   Estatísticas auth haproxy: RedHat # Credenciais para página de relatório HAProxy Estatística.
   equilíbrio roundrobin balanceamento de carga # funcionará no processo de round-robin.
   opção httpchk
   opção httpclose
   opção forwardfor
   inserção bolinho LB
   ha2 servidor 192.168.87.151:80 bolinho de verificação HA1 servidor # backend.
   HA1 servidor 192.168.87.152:80 bolinho de verificação ha2 servidor # backend.

Precisamos reiniciar os serviços e fazer as mudanças eficazes.

 # Service reinício haproxy 

Para iniciar o serviço automaticamente, use o comando abaixo

 # Chkconfig haproxy em 

Para verificar o arranque automático -

 # Chkconfig --list haproxy 

Após os serviços, re-start para que, podemos acessar o balanceador de carga em http://192.168.87.150:/stats

Para testar o balanceador de carga HAProxy, teremos que criar um arquivo index.html em ambos os servidores da web com código abaixo.

Crie um arquivo index.html no webserver1 com o código abaixo.

 <Html>
 <Head>
 <Title> HAProxy página de teste </ title>
 </ Head>
<Body>
 <! - O conteúdo principal ->
 <H1> Meu servidor HAProxy página de teste 1 </ h1>
</ Body>
 </ Html> 

Crie um arquivo index.html em webserver2 com o código abaixo.

 <Html>
 <Head>
 <Title> HAProxy página de teste </ title>
 </ Head>
<Body>
 <! - O conteúdo principal ->
 <H1> Meu servidor HAProxy página de teste 2 </ h1>
</ Body>
 </ Html> 

Agora acessar o IP do servidor haproxy http://192.168.57.150

Por padrão, você pode ver a página de webserver 1

webserver1

webserver1

Agora, testar o equilíbrio de carga, indo para webserver 1 e parar o servidor HTTPd

 # Paragem httpd serviço 

Em seguida, acessar o IP do servidor haproxy, http://192.168.57.150

Agora, você verá a página web de webserver2 automaticamente

webserver2

webserver2

Para verificar, você pode acessar a página de estatísticas balanceador de carga HAProxy http://192.168.87.150/stats

HAProxy

HAProxy

Conclusão

Após a configuração, você deve ser capaz de obter o seu site, sem interrupção, mesmo se um dos servidores é baixo ou inexistente. Da mesma forma, também pode configurar um HAProxy para o Apache. Você também pode observar que, Webserver1 não é acessível ou para baixo na página de estatísticas de balanceamento de carga HAProxy configurando o acima como mostrado. Você também pode adicionar qualquer número de servidores, dependendo da exigência.