Varnish & Heartbeat como balanceadores de carga

2

Aqui está a configuração que estou tentando realizar

Então,oqueestoutentandofazeré:umusuárioacessao10.0.0.1epassaparaobalanceadordecargaqueestágerenciandoassolicitações.Euqueroqueovernizrealmentemanipuleopedido.

Aquiestáomeuarquivoha.cf:

debug3debugfile/var/log/ha-debuglogfile/var/log/ha-logbcasteth0keepalive2warntime5deadtime15initdead30udpport694udpeth0auto_failbackyesnodeloadb1nodeloadb2

*Issoéomesmonoloadb2.Tambémtenhoohabilitardedepuraçãoparafinsdeteste.Eleseráremovidoquandoaproduçãoestiverpronta.

Aquiestãoosrecursos

loadb1IPaddr::10.0.11.200/32varnishd

*Novamente,mesmonoloadb2(eutambémtenteifazercomqueoheartbeatnãogerencienadaalémdoIP;portanto,não"varnishd" no final nos haresources)

Minha configuração de verniz é a seguinte:

 backend server1 {
.host = "10.5.0.111";
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1 s;
.window = 5;
.threshold = 3;
}
}
backend server2 {
.host = "10.5.0.112";
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1 s;
.window = 5;
.threshold = 3;
}
}

director example_director random {
{
.backend = server1;
.weight = 2;
}
{
.backend = server2;
.weight = 1;
}
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?bps101.net$") {
set req.backend = example_director;
}
}

Eu tenho meu batimento cardíaco funcionando bem. O ip 10.0.0.1 é totalmente passível de ping. Mas quando cheguei a 10.0.0.1 em um navegador, recebo uma redefinição de conexão. (nada está escutando na porta 80). Eu sei que a configuração do verniz funciona. Eu sei que a configuração de heartbeat funciona. Eu simplesmente não consigo que eles trabalhem juntos. Alguém tem alguma sugestão ou idéia? Eu apreciaria muito qualquer conselho, direção, etc. que qualquer um pudesse fornecer. Obrigado.

    
por lilott8 24.03.2011 / 17:35

3 respostas

0

Sim, é. O problema parecia ser que meu heartbeat haresources config precisava não ter o "varnishd" nele. Por alguma razão, o batimento cardíaco odiava isso. Então, o heartbeat não está gerenciando totalmente o verniz. Mas eu tenho cronjob que está executando um script para ver se o verniz está sendo executado. Se não for, reinicie-o.

    
por 25.03.2011 / 15:57
2

Você pode criar seu próprio script em resources.d para que o heartbeat possa gerenciar o deamon do verniz.

Uma solução simples seria

#!/bin/bash


case $1 in

    start)

        /etc/init.d/varnish start
    ;;

    stop)

        /etc/init.d/varnish stop
    ;;

    status)

    ;;

esac

Você pode encontrar um pequeno manual em alemão link

    
por 16.05.2011 / 15:56
1

Ok, o básico:

  • Você consegue ver o endereço IP 10.0.0.1 em uma das máquinas de verniz? ( ip ad show )
  • O verniz está escutando corretamente na porta 80, todos os endereços IP? ( netstat -tanp )

Se esses dois estão corretos, algum estranho está acontecendo :) Eu uso uma solução semelhante à sua que eu descrevi em esta resposta , você pode usar as mesmas coisas e usar apenas 1 ip para conseguir o mesmo efeito que você quer.

    
por 24.03.2011 / 18:03