Qual é a diferença entre Load Balancer e Reverse Proxy?

106

Não estou claro sobre a diferença entre o Load Balancer e o Reverse Proxy. Ambos parecem ter o mesmo comportamento: distribuir solicitações recebidas para servidores de backend.

    
por Morgan Cheng 28.03.2010 / 10:46

5 respostas

101

Sua confusão é razoável - eles são geralmente a mesma coisa. Mas não sempre. Quando você se refere a um balanceador de carga, está se referindo a uma coisa muito específica - um servidor ou dispositivo que equilibra as solicitações de entrada em dois ou mais servidores da Web para distribuir a carga. Um proxy reverso, no entanto, normalmente possui vários recursos:

  1. balanceamento de carga: conforme discutido acima

  2. cache: ele pode armazenar em cache o conteúdo do (s) servidor (es) da web por trás e, assim, reduzir a carga no (s) servidor (es) da web e retornar algum conteúdo estático ao solicitante sem precisar obter os dados do servidor (es) da web

  3. segurança: pode proteger o (s) servidor (es) da Web, impedindo o acesso direto da Internet; ele pode fazer isso através de meios simples, apenas ofuscando o (s) servidor (es) da web ou pode ter alguns componentes mais ativos que realmente revisam as solicitações de entrada que procuram código malicioso

  4. Aceleração de SSL: quando o SSL é usado; pode servir como um ponto de terminação para essas sessões SSL, para que a carga de trabalho de lidar com a criptografia seja transferida do (s) servidor (es) da web

Acho que isso cobre a maior parte, mas provavelmente há alguns outros recursos que eu perdi. Certamente não é incomum ver um dispositivo ou software comercializado como um balanceador de carga / proxy reverso porque os recursos são tão comumente agrupados.

    
por 28.03.2010 / 11:04
23

Além disso, um proxy reverso é específico para servidores da Web.

Os balanceadores de carga, no entanto, podem lidar com muitos outros protocolos. Enquanto a web (HTTP) é a grande ideia hoje em dia, coisas como DNS, e-mail (SMTP, IMAP), etc. podem ser balanceadas de carga também. É apenas hoje em dia, quando a maioria das pessoas pensa em "Internet" ou "rede IP", eles pensam na web. Há muito mais coisas por aí que podem ser mais obscuras, ou mais de um nicho.

    
por 28.03.2010 / 19:55
12

Embora o resultado líquido (distribuir solicitações entre servidores) seja o mesmo entre vários balanceadores de carga e proxies reversos, a diferença está no método usado para distribuir as solicitações.

Alguns balanceadores de carga balanceam o tráfego usando o DNS, resolvendo o mesmo nome para IPs diferentes em um round robin, redirecionando efetivamente as solicitações. Isso geralmente pode ser útil quando solicitações de balanceamento de carga entre datacenters ou outros locais físicos. Essa é uma má escolha se você precisar de failover "instantâneo", pois está à mercê do servidor DNS de seus clientes para honrar o TTL que você forneceu. O GSS (Global Site Selector) da Cisco é um bom exemplo de balanceamento de carga baseado em DNS.

Outros balanceadores de carga funcionam reescrevendo cabeçalhos de pacote destinados a um IP virtual para o IP real de um servidor em um farm. Isso fornece balanceamento de carga em tempo real e failover instantâneo. Um exemplo disso seria o CSM (Content Switching Module) da Cisco

Note que nos dois exemplos acima, há uma conversa TCP entre o cliente e o servidor.

Um proxy reverso funciona aceitando a solicitação em nome do servidor da web, em seguida, ecoando essa solicitação para o servidor da web e retornando-a ao cliente, opcionalmente armazenando em cache os resultados, caso uma solicitação similar ocorra.

Observe que o cliente nunca estabelece realmente uma conexão com o servidor da Web; em vez disso, a conversa é estritamente entre o proxy e o cliente.

    
por 28.03.2010 / 19:39
3

Um balanceador de carga pode equilibrar o tráfego da camada 3 para a camada 7, mas um proxy reverso é específico para HTTP.

    
por 02.11.2016 / 09:49
3

Um proxy reverso aceita uma solicitação de um cliente, encaminha para um servidor que pode atendê-lo e retorna a resposta do servidor ao cliente (o que significa um servidor por trás do Proxy Reverso pode se comunicar com recursos um pouco diferentes de um protocolo ou um protocolo diferente).

Um balanceador de carga distribui as solicitações de entrada do cliente entre um grupo de servidores, retornando em cada caso a resposta do servidor selecionado para o cliente apropriado.

    
por 23.09.2016 / 09:30