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.
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!
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:
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:
E acrescente esta:
Depois basta reiniciar o Apache.
# apache2clt restart
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