Pular para o conteúdo

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.
Igor Pereira Santos rogi.band
Hits: 51.836 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar

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

   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
Nenhum artigo encontrado.

Roteando duas sub-redes com servidores

Tomcat com URL limpa

Acesso remoto pela Internet de forma simples usando TeamViewer

Apache em chroot + MySQL + PHP + mod_security + mod_evasive + vsftpd + Fail2ban + Debian Squeeze

Um pouco do protocolo HTTP

#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

Entre na sua conta para comentar.