Load Balancer com Failover, Perlbal e Heartbeat para servidores web

Explicarei aqui como montar um LoadBalancer com Failover e Heartbeat para seus servidores web. Como este é meu primeiro artigo, caso eu cometa algum erro, por favor, fiquem a vontade para corrigir.

[ Hits: 47.713 ]

Por: Igor Pereira Santos em 16/02/2009


O que é e como funciona?



Teremos duas máquinas na frente dos servidores web, chamaremos de srv-1 e srv-2.

Essas máquinas farão todo o trabalho para encaminhar as requisições web ao servidores.

E porque duas máquinas na frente?

Se alguma delas der problema, a outra assume quase que instantaneamente e seus sites não irão parar de funcionar.

Tudo foi feito com Linux Debian Etch, vamos às configurações!
  • O servidor srv-1 receberá o IP 192.168.0.1
  • O servidor srv-2 receberá o IP 192.168.0.2

Precisaremos também de um IP virtual que ficará entre o srv-1 e o srv-2, no caso, 192.168.0.3.

Teremos por trás deles os servidores Web com os seus IPs:
  • web01 - 192.168.0.10
  • web02 - 192.168.0.11
  • web03 - 192.168.0.12

Nos servidores web, deixei as configurações padrão com Debian e Apache2.

Será necessário modificar uma linha de configuração do apache2 nos servidores web (web01, web02, web03) para que eles peguem o IP de quem está acessando e não dos servidores loadbalancer.

No arquivo de configuração do apache2 (/etc/apache2/apache2.conf) comente a seguinte linha:

#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

E acrescente esta:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Depois basta reiniciar o Apache.

# apache2clt restart

    Próxima página

Páginas do artigo
   1. O que é e como funciona?
   2. Instalando e configurando
   3. Configuração dos Loadbalancer
   4. Instalando e configurando o HeartBeat
   5. Iniciando o Perlbal
   6. Suporte a virtual hosts no Perlbal
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Criando seu próprio servidor de DNS dinâmico (nsupdate + bind9)

Arch Linux - Conexão 3G VIVO com modem Nokia CS-10

ProFTPD + MySQL - Servidor FTP com usuários em banco de dados

Apache Kafka

Como instalar e configurar Apache-Tomcat 6 no Debian Lenny com o Apache2

  
Comentários
[1] Comentário enviado por walber em 16/02/2009 - 18:07h

Parabéns, ótimo artigo.

[2] Comentário enviado por rogi.band em 17/02/2009 - 10:20h

Obrigado amigo.

[3] Comentário enviado por walber em 18/02/2009 - 18:06h

Rogi, por acaso vc teria alguma dica para fazer um server com heartbeat para servidor de internet tipo.

firewall-1 com ip 192.168.0.4
firewall-2 com ip 192.168.0.5
e ip virtual 192.168.0.6 no meios desses caras daí quando o firewall 1 caisse o firewall 2 assumisse, se tiver alguma sugestão da um help ae.

Valeu.

[4] Comentário enviado por rogi.band em 18/02/2009 - 23:01h

Opa, blzinha?!

Da pra fazer sim. Já vi esse esquema que voce está querendo mais com OpenBSD usando CARP.
Nunca montei um do zero, mas já trabalhei com Open usando CARP, funciona legal e não parece ser difícel de montar um, da uma olhada no site do Open e no google que voce deve achar alguma coisa explicando legal em como montar um assim.

Outra coisa que voce pode tentar, é pegar meu artigo e montar sem os webservers, e tentar fazer um firewall como voce está querendo.

Derrepente pode ser meu proximo artigo, já que é dificel de encontrar manuais sobre loadbalancer e failover, principalmente em português.

[]s,
Igor

[5] Comentário enviado por jpfaria em 02/03/2009 - 16:03h

Galera,

Existe a possibilidade de fazer o cluster load-balancer utilizando somente o apache
e utilizar Heartbeat para fazer o cluster de alta disponibilidade.


Contribuir com comentário