Por que o balanceador de carga da camada 7 não pode passar pela terminação SSL?

2

Eu preciso compartilhar a tarefa de encerramento de SSL entre o farm de servidores ou vários processos. Nessa arquitetura, deve haver um balanceador de carga antes dessa tarefa de encerramento de SSL. Depois de procurar um balanceador de carga de software apropriado por um tempo, verifica-se que somente os balanceadores de carga da camada 4 (TCP) (haproxy) são adequados para essa tarefa, em vez de para a camada 7 (HTTP / HTTPS).

Minha pergunta é: por que os balanceadores de carga da camada 7, como nginx, perlbal, não podem simplesmente passar pela terminação ssl? Os endereços IP do cliente devem estar disponíveis no balanceador de carga da camada 7. Eles podem apenas encaminhar pedidos, certo?

A arquitetura é como:

HTTPS balancer (L4/TCP balancer)
  / | \        <--- HTTPS traffic
SSL server farm/processes
  \ | /        <--- HTTP traffic
HTTP balancer (L7/HTTP balancer)
  / | \
HTTP server farm/processes

Referência: link

    
por papalagi 07.11.2014 / 04:47

1 resposta

2

A camada TCP apenas roteia o tráfego com cabeçalhos adicionados / controle sobre os pacotes de rede a partir da camada subjacente. Não tem conhecimento do que transporta, portanto, não precisa lidar com seu conteúdo e se é HTTP (S). HTTP / HTTPS não importa .

Ao lidar com a camada de aplicativo, você está no fundo do conteúdo, já que lida com um aplicativo. No caso de HTTPS, você precisará de terminação SSL. HTTP / HTTPS é importante .

Assim, se você quiser balancear a carga no nível do aplicativo, será necessário fazer a terminação SSL nos mesmos balanceadores de carga. O nginx permite que você faça isso.

Se você deseja separar essas tarefas, precisará de um balanceador de carga no nível de rede / roteamento.

    
por 07.11.2014 / 20:50