Como você configuraria várias instâncias de Haproxy de terminação de SSL, que são carregadas com carga balanceada?

1

Eu tenho feito muita pesquisa e experimentação sobre isso, e estou realmente me deparando com um muro:

Estou tentando configurar o HAProxy como proxy reverso para um ambiente de alta disponibilidade. Todo o tráfego entrando e saindo desse ambiente é criptografado por SSL, portanto, o design original era ter o HAProxy terminado o SSL e passar o tráfego para o enclave, e traduzir de volta para o outro lado. Até agora, tudo bem, há muita documentação estelar sobre isso.

O problema é o seguinte: o grande volume de tráfego é muito para a caixa HAProxy de terminação SSL única, necessitando de mais de um proxy reverso de terminação SSL.

Ok, olhei alto e baixo nisto e encontrei muitos artigos que pareciam estar liderando na direção certa, mas sempre acabei com 1 HAProxy principal e 1 backup (por exemplo, todas as soluções heartbeat e keepalived out lá, como aqui e here ), ou ignorar completamente a terminação SSL, e falar sobre DNS round-robining para seus balanceadores de carga.

Então, eu acho que o que eu realmente estava procurando era a capacidade de mais de uma caixa de terminação haproxy ssl compartilhar a carga simultaneamente. Existe uma maneira de fazer isso fora dos round-robins do DNS?

Acho que achei que haveria uma maneira de compartilhar o mesmo endereço IP virtual e dividir o tráfego entre eles simultaneamente, tudo como um cluster. Se uma caixa ficar inativa, o failover poderá ser resolvido com o método keepalived acima, ou qualquer outra coisa. Isso parece não ser um caso de uso comum ... é possível?

(Existe, é claro, a questão de como compartilhar sessões SSL entre processos HAProxy, mas se isso não for possível, restabelecer uma nova sessão de vez em quando não é um matador neste caso.)

Obrigado antecipadamente!

    
por Decker 11.12.2014 / 10:15

1 resposta

2

Duas instâncias de haproxy podem compartilhar carga usando 2 IPs virtuais com cada instância o mestre para um desses. O round robin DNS equilibra-se aproximadamente entre os 2 IPs virtuais (e consequentemente entre as duas instâncias de haproxy). Este método também funciona com SSL. Uma razão para pensar duas vezes sobre essa configuração ativa-ativa é que, se uma instância não puder lidar com o tráfego total sozinha, ela ficará sobrecarregada se uma das instâncias ficar inativa. Fundamentalmente, isso só pode ser resolvido com a capacidade de desperdício ou aceitando um impacto temporário no desempenho.

Como alternativa, você pode inserir um equilíbrio haproxy no modo TCP na frente de seus proxies de terminação SSL. Uma sessão TCP irá se ater a um back-end, então você não precisa se preocupar muito com a renegociação.

    
por 11.12.2014 / 15:03