Estou configurando uma máquina Centos com o Apache em execução para balanceamento de carga entre dois servidores da web de aplicativos. Normalmente eu faria tudo isso com um F5 (ou outro hardware LB), mas o cliente não está querendo gastar mais dinheiro, então estou colocando isso junto com uma VM. Eu comecei a trabalhar para fazer round robin regular entre duas máquinas, mas eu preciso apenas ter o segundo servidor para failover. Veja meu host virtual abaixo:
<VirtualHost *:80>
Options +FollowSymLinks
Include conf/virtualhosts.conf
RewriteEngine on
RewriteLogLevel 9
RewriteLog /var/log/httpd/rewrite_log
RewriteRule ^/?h/(\.[0-9]+)/(string/.*)$ balancer://mycluster/$2?h=$1 [P,QSA]
Header add Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_WORKER_ROUTE
<Proxy balancer://mycluster/>
Order deny,allow
Allow from all
BalancerMember http://server1:8080 route=0
BalancerMember http://server2:8080 route=1 status=+H
</Proxy>
ProxyPreserveHost on
ProxyPass / balancer://mycluster/ stickysession=h nofailover=On
ProxyPassReverse / balancer://mycluster/
ProxyPass /balancer-manager !
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
</VirtualHost>
Duas perguntas agora que estou tendo problemas com:
Defina a opção status = + H, mas quando desativo o serviço da Web no servidor1, ele simplesmente tenta me enviar para esse. Isso é por causa de um cookie na minha máquina que ainda quer que eu vá até lá? Preciso configurar uma verificação de integridade para um valor de retorno http? Estou um pouco perdida neste momento. Se eu derrubar todo o servidor, ele deve funcionar, mas então eu tenho que descer para a sala do servidor para reiniciar a coisa:).
Não consigo fazer com que o balancer_manager funcione. Quando eu vou para http://virtualip/balancer-manager
ele me envia para um dos servidores da web e, em seguida, o servidor da web no server1 me dirá que esse link não existe.
Qualquer ajuda em qualquer um dos problemas seria ótima!