Não estou claro sobre a diferença entre o Load Balancer e o Proxy Reverso. Ambos parecem ter o mesmo comportamento: distribuir solicitações recebidas para servidores de back-end.
Não estou claro sobre a diferença entre o Load Balancer e o Proxy Reverso. Ambos parecem ter o mesmo comportamento: distribuir solicitações recebidas para servidores de back-end.
Respostas:
Sua confusão é razoável - eles geralmente são 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 solicitações de entrada em dois ou mais servidores da Web para distribuir a carga. Um proxy reverso, no entanto, geralmente possui vários recursos:
balanceamento de carga: como discutido acima
armazenamento em cache: pode armazenar em cache o conteúdo do (s) servidor (es) da Web atrás dele e, assim, reduzir a carga no (s) servidor (es) da Web e retornar algum conteúdo estático de volta ao solicitante sem precisar obter os dados do (s) servidor (es) da Web
segurança: pode proteger o (s) servidor (es) da web, impedindo o acesso direto da internet; ele pode fazer isso de maneira simples, ocultando apenas o (s) servidor (es) da web ou pode ter alguns componentes mais ativos que revisam as solicitações de entrada que procuram código malicioso
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 descarregada do (s) servidor (es) da Web
Eu 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 geralmente são agrupados.
Além disso, um proxy reverso é específico para servidores da web.
Os balanceadores de carga, no entanto, podem lidar com muitos outros protocolos. Embora a web (HTTP) seja a grande ideia hoje em dia, coisas como DNS, correio (SMTP, IMAP) etc. também podem ser balanceadas por carga. Hoje em dia, quando a maioria das pessoas pensa em "Internet" ou "rede IP", pensa na web. Há muito mais coisas por aí que podem ser mais obscuras ou mais de um nicho.
Embora o resultado líquido (distribuição de 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 equilibram 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 pacotes 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 quase instantâneo. Um exemplo disso seria o CSM da Cisco (Content Switching Module)
Observe 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, ecoando a solicitação no servidor da Web e retornando-a ao cliente, opcionalmente, armazenando em cache os resultados caso uma solicitação semelhante seja seguida.
Observe que o cliente nunca realmente estabelece uma conexão com o servidor web; pelo contrário, a conversa é estritamente entre o proxy e o cliente.
Um balanceador de carga pode equilibrar o tráfego da camada 3 para a camada 7, mas um proxy reverso é específico para HTTP.
Um proxy reverso aceita uma solicitação de um cliente, a encaminha para um servidor que pode atendê-la e retorna a resposta do servidor ao cliente (o que significa que um servidor por trás do Proxy Reverso pode se comunicar com recursos um pouco diferentes de um protocolo ou protocolo diferente )
Um balanceador de carga distribui solicitações de entrada de clientes entre um grupo de servidores, retornando em cada caso a resposta do servidor selecionado para o cliente apropriado.