verificação do servidor haproxy% [dst_port]

1

Desejo carregar solicitações de saldo para a mesma porta em três back-ends. Eu tenho cerca de 20 portas para encaminhar, então eu preciso de uma maneira de torná-lo dinâmico. Isso é para balanceamento de carga de nossos servidores de teste unitário, pré-prod, qa, dev e unit para vários domínios. Então, sim, eu posso fazer isso usando 20 backends, com 20 acls e 20 use_backends. Mas então esqueça isso. Muito trabalho.

Então, eu gostaria de usar uma variável, para significar "a porta que foi solicitada". Eu tentei% [dst_port] porque isso pareceu funcionar em alguma outra situação.

Eu leio uma resposta em algum lugar de Willy T, que se alguém deixa o porto, ele apenas avança para a mesma porta.

Mas ainda precisa da porta de serviço ou da porta de verificação, que eu não sei antecipadamente, a menos que eu ligue 20 frontends diferentes.

Error: server X has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.

por exemplo,

listen load-balance
     bind :28080 
     bind :42080 
     bind :48080 
     bind :58080 
     bind :38080 
     mode http
     balance roundrobin
     option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
     server X 10.20.30.1 check %[dst_port]
     server Y 10.20.30.2 check %[dst_port]
     server Z 10.20.30.3 check %[dst_port]

Você vê, precisa de uma variável. Isso é possível?

(Meu problema é ainda mais complicado porque, tecnicamente, eu preciso de um mapa da porta de destino para verificar a porta, idealmente, mas se eu pudesse fazer esse truque de porta dinâmica, pelo menos, então é bom o suficiente por enquanto.)

    
por djb 15.02.2017 / 17:23

1 resposta

1

Você precisa configurá-lo com

 server X 10.20.30.1 check port 80
 server Y 10.20.30.2 check port 80
 server Z 10.20.30.3 check port 80

Você pode definir apenas uma porta para verificar a saúde ou usar o "comando de verificação externa" para verificar seu servidor com um script próprio ...

    
por 17.02.2017 / 20:18