Qual é a diferença entre um proxy reverso e um balanceador de carga?

Proxy reverso: recebe as solicitações dos clientes, encaminha-as ao servidor de backend apropriado e, em seguida, retorna a resposta do servidor ao cliente. Balanceador de carga: distribui as solicitações dos clientes entre um grupo de servidores e garante que as respostas dos servidores selecionados sejam direcionadas de volta ao cliente correto. Embora as definições possam parecer semelhantes, suas funções são diferentes, o que muitas vezes causa confusão.

Servidores proxy reverso e balanceadores de carga

Servidores proxy reversos e balanceadores de carga são componentes essenciais da arquitetura de computação cliente/servidor. Ambos atuam como intermediários entre clientes e servidores, aumentando a eficiência da comunicação. Embora possam ser implementados como dispositivos de hardware dedicados, as arquiteturas web modernas dependem cada vez mais de aplicações de software executadas em hardware de uso geral.

Veja as definições básicas de cada um:

  • Proxy reverso: recebe as solicitações dos clientes, encaminha-as ao servidor de backend apropriado e, em seguida, retorna a resposta do servidor ao cliente.
  • Balanceador de carga: distribui as solicitações dos clientes entre um grupo de servidores e garante que as respostas dos servidores selecionados sejam encaminhadas de volta ao cliente correto.

Embora as definições possam parecer semelhantes, suas funções são diferentes, o que muitas vezes causa confusão. Para esclarecer, veremos quando e por que cada um deles é utilizado em serviços web.

Balanceamento de carga

Um balanceador de carga geralmente é implantado quando um único servidor não consegue processar com eficiência um grande volume de solicitações, exigindo vários servidores para gerenciar a carga. Ao distribuir as solicitações entre vários servidores, os balanceadores de carga eliminam pontos únicos de falha e aumentam a confiabilidade dos sites. A maioria dos servidores nesse tipo de ambiente hospeda conteúdo idêntico.

A função do balanceador de carga é maximizar a utilização dos recursos dos servidores, distribuir as cargas de trabalho de maneira uniforme para evitar a sobrecarga de um único servidor e fornecer respostas mais rápidas aos clientes. Quando um servidor fica indisponível, o balanceador de carga detecta a falha e redireciona as solicitações para os servidores restantes.

As verificações avançadas de integridade permitem que os balanceadores de carga avaliem a integridade dos servidores com mais eficiência, enviando solicitações específicas e analisando as respostas, em vez de depender apenas das respostas de erro interceptadas.
Alguns balanceadores de carga também oferecem persistência de sessão, garantindo que todas as solicitações de um cliente específico sejam direcionadas ao mesmo servidor. Isso é especialmente útil para aplicações com estado, como plataformas de comércio eletrônico, nas quais funcionalidades como carrinhos de compras exigem a manutenção de estados de sessão consistentes.

Proxy reverso

Embora os balanceadores de carga sejam normalmente implantados em ambientes com vários servidores, os proxies reversos costumam ser úteis mesmo quando há apenas um servidor web ou de aplicações. Atuando como a "face pública" de um site, um proxy reverso fica posicionado na borda da rede, recebendo de navegadores e aplicativos móveis as solicitações de acesso ao conteúdo hospedado.

Os principais benefícios incluem:

  • Segurança aprimorada: os proxies reversos impedem que as informações dos servidores de back-end fiquem visíveis para redes externas, evitando o acesso direto aos servidores por agentes mal-intencionados. Além disso, a maioria dos proxies reversos pode bloquear o tráfego de endereços IP específicos, limitar as tentativas de conexão e proteger contra ataques DDoS.
  • Escalabilidade e flexibilidade aprimoradas: como apenas o endereço IP do proxy reverso fica visível para os clientes, a infraestrutura de backend pode ser modificada livremente. Essa configuração é particularmente útil em ambientes com balanceamento de carga, permitindo um escalonamento contínuo em resposta às variações de tráfego.

Os proxies reversos também melhoram significativamente a aceleração da Web, reduzindo o tempo necessário para gerar respostas às solicitações dos clientes por meio de técnicas como:

  • Compactação: compactar as respostas do servidor (por exemplo, usando gzip) antes de transmiti-las reduz o uso de largura de banda e acelera as transferências.
  • Terminação SSL/TLS: a criptografia do tráfego protege os dados transmitidos por redes públicas, como a internet. No entanto, os processos de criptografia e descriptografia exigem um poder computacional considerável. Ao lidar com esses processos, os proxies reversos liberam os servidores de back-end para que se concentrem na entrega de conteúdo.
  • Cache: armazena conteúdos solicitados com frequência, reduzindo o tempo de resposta para os clientes e aliviando a carga dos servidores de backend.

Como o NGINX Plus pode ajudar?

NGINX Plus e NGINX são soluções de balanceamento de carga de nível internacional, nas quais sites de alto tráfego, como Dropbox, Netflix e Zynga, confiam. Mais de 450 milhões de sites em todo o mundo contam com NGINX Plus e NGINX Open Source para fornecer conteúdo com rapidez, confiabilidade e segurança.

O NGINX Plus oferece amplos recursos de balanceamento de carga e proxy reverso, melhorando o desempenho, a confiabilidade, a segurança e a escalabilidade de um site. Por ser uma solução baseada em software, ele oferece esses recursos por uma fração do custo das soluções baseadas em hardware. Com o NGINX Plus, você pode criar redes de entrega de aplicações altamente otimizadas.