O que é um Servidor Proxy?

Em redes de computadores, um Servidor Proxy é um sistema ou aplicação que atua como intermediário para solicitações de clientes que buscam recursos de outros servidores. Quando um cliente se conecta ao servidor proxy e solicita um serviço (como um arquivo, conexão, página web ou outros recursos) de um servidor diferente, o proxy avalia a solicitação para simplificar e controlar sua complexidade. Os servidores proxy foram desenvolvidos para adicionar estrutura e encapsulamento aos sistemas distribuídos.

Hoje, a maioria dos proxies é do tipo web, facilitando o acesso ao conteúdo na World Wide Web e fornecendo anonimato. Eles têm uma variedade de usos, incluindo a filtragem de conteúdo e o fornecimento de anonimato. Além disso, um servidor proxy pode alterar a requisição do cliente ou a resposta do servidor e, em alguns casos, pode oferecer este recurso mesmo sem se conectar ao servidor especificado.

Os servidores proxy também podem funcionar como servidores de cache, armazenando dados temporariamente em redes de computadores. Eles são geralmente instalados em máquinas com conexões superiores às dos clientes e com alta capacidade de armazenamento.

Um exemplo específico é o proxy de cache HTTP, que permite que o cliente solicite um documento na World Wide Web. O proxy procura pelo documento em seu cache e, se encontrado, atende à solicitação e retorna o documento imediatamente. Se não for encontrado, o proxy busca o documento no servidor remoto, entrega-o ao cliente e salva uma cópia em seu cache. Isso resulta em uma redução na latência, pois é o servidor proxy, e não o servidor original, que é solicitado, além de proporcionar uma redução no uso da largura de banda.

A origem dos Servidores Proxy

O servidor proxy foi concebido para atender à necessidade de conectar uma Rede Local (LAN) à Internet por meio de um computador na rede que compartilha sua conexão com as demais máquinas. Em outras palavras, se considerarmos a rede local como uma rede “interna” e a Internet como uma rede “externa”, o servidor proxy é o elemento que permite que outras máquinas obtenham acesso externo.

Normalmente, as máquinas da rede interna não possuem endereços IP válidos na Internet, portanto, não possuem uma conexão direta com ela. Assim, qualquer solicitação de conexão de uma máquina da rede local para uma máquina na Internet é direcionada ao servidor proxy. Este, por sua vez, estabelece o contato com a máquina desejada, repassando a resposta da solicitação para a máquina da rede local.

Proxy Direto

Um diagrama ilustrando o caminho da conectividade à internet de um computador para um servidor de destino através de um proxy direto.

O Proxy direto é um componente intermediário que atua do lado do cliente, representando-o na comunicação com o servidor. Existem três aplicações fundamentais para um Proxy direto:

Sistema de Cache Comunitário

Este sistema visa otimizar o desempenho no acesso a recursos estáticos em uma rede local. O Proxy Direto armazena em cache os recursos que são acessados com frequência, compartilhando-os entre todas as máquinas da rede. No entanto, com o aumento da criptografia do tráfego, essa prática se torna menos eficaz, pois impede a intermediação do Proxy em tráfego criptografado.

Atualmente, a tendência é ter cada vez mais tráfego criptografado. Quando você acessa um site e vê o símbolo do cadeado ao lado da barra de endereços, isso significa que o site e todo o seu conteúdo estão criptografados do servidor até o seu navegador de Internet. Isso inclui recursos estáticos, como imagens. Quando o tráfego está criptografado, o servidor Proxy não consegue fazer o cache desse recurso estático.

Portanto, o uso do Sistema de Cache Comunitário está cada vez mais em desuso. A criptografia do tráfego, que é uma prática cada vez mais comum para garantir a segurança dos dados, torna a intermediação do Proxy ineficaz. Como resultado, o sentido de ter esse tipo de sistema está se perdendo. As organizações estão buscando outras soluções para otimizar o desempenho no acesso a recursos estáticos em uma rede local.

Privacidade ou Mascaramento de Origem

Neste contexto, o Proxy Direto atua como um intermediário externo com o objetivo de ocultar a verdadeira origem do tráfego. Quando um cliente acessa o Proxy, este encaminha a solicitação para o servidor de destino, fazendo com que o servidor interprete que o tráfego se origina do Proxy, ocultando assim a identidade real do cliente.

Este método tem várias aplicações práticas. Por exemplo, se um site na Europa está bloqueando acessos provenientes de uma rede local ou de um país específico, como o Brasil, um servidor Proxy localizado em um país que não está sendo bloqueado (como os Estados Unidos) pode ser usado para contornar essa restrição. O cliente se conecta ao servidor Proxy nos Estados Unidos, que então acessa o servidor web na Europa. Para o servidor na Europa, parece que o acesso está vindo dos Estados Unidos.

No entanto, existem algumas desvantagens nesse método. A principal é a questão da segurança. O servidor Proxy é uma máquina intermediária no tráfego de rede e pode não ser confiável, especialmente se for um servidor Proxy público disponível na Internet. O proprietário desse servidor Proxy pode estar monitorando o tráfego que passa por ele. Além disso, os servidores Proxy geralmente só servem para tráfego web, ou seja, acesso a páginas de Internet. Isso ocorre porque os servidores Proxy são protocolo específico. Mesmo com proxies SOCKS, alguns protocolos e aplicações não podem ser configurados para usar um servidor proxy.

Por essas razões, o uso de servidores Proxy para mascaramento de origem está se tornando menos comum. Em vez disso, os Servidores VPN estão sendo cada vez mais utilizados. Os servidores VPN oferecem criptografia e outras vantagens, tornando-os uma opção mais segura e flexível para mascaramento de origem.

Controle de Acesso

No contexto do Proxy Direto, assume o papel de implementar políticas restritivas para o acesso à Internet na rede local. As regras configuráveis no Proxy incluem restrições de horário, bloqueio de sites baseado em palavras-chave ou políticas específicas. Funciona, essencialmente, como um firewall, controlando o tráfego no sentido do cliente para a Internet.

Um exemplo prático disso pode ser encontrado em muitos hotéis ao redor do mundo. Quando um hóspede se conecta à rede do hotel e tenta navegar na Internet, qualquer site que ele tente acessar irá redirecioná-lo para uma página de autenticação do hotel. Esta página solicita informações como o número do quarto e o sobrenome do hóspede. Uma vez que o hóspede é autenticado corretamente, o acesso à Internet é liberado. Este é um exemplo de controle de acesso implementado através de um Proxy Direto.

Proxy Reverso

Um diagrama ilustrando a conexão entre computadores, a internet, um proxy reverso e um servidor de origem.

Um Proxy Reverso atua como um representante de um servidor, servindo como intermediário na comunicação entre o cliente e o servidor, mas sempre representando o lado do servidor. Existem três aplicações típicas para um Proxy Reverso.

Controle de Acesso

A primeira aplicação é o controle de acesso, também conhecido como firewall. Como mencionamos anteriormente, um firewall pode funcionar tanto como um Proxy Direto quanto como um Proxy Reverso, dependendo de sua localização e do sentido do tráfego.

Um exemplo prático disso pode ser visto quando um servidor Web localizado na Europa bloqueia o tráfego oriundo do Brasil. Nesse caso, a regra configurada no firewall da rede conectada a esse servidor é “Bloquear todo o tráfego oriundo do Brasil”.

Existem muitas configurações possíveis em um firewall, que vão desde bloquear países inteiros, bloquear máquinas específicas, até bloquear com base em regras ou padrões de acesso. Portanto, um firewall oferece uma ampla gama de possibilidades de filtragem.

Sistema CDN (Content Delivery Network)

O alt text para essa imagem pode ser: “Dois diagramas ilustrando diferentes arquiteturas de rede. O diagrama à esquerda mostra um servidor central conectado a quatro computadores via conexão direta, todos envoltos em uma forma de nuvem, simbolizando a internet ou uma nuvem de rede. O diagrama à direita representa uma Rede de Distribuição de Conteúdo (CDN) onde vários servidores são usados para entregar conteúdo aos usuários finais de forma eficiente, com vários servidores laranja conectados a quatro computadores através de linhas sólidas, indicando conexões diretas, também envoltos em uma forma de nuvem similar.

A segunda aplicação típica de um Proxy Reverso é o sistema CDN (Content Delivery Network), também conhecido como rede de distribuição de conteúdo ou rede de entrega de conteúdo. Uma CDN é uma empresa especializada que disponibiliza diversos servidores em pontos estratégicos ao redor do mundo. Esses servidores atuam como intermediários para servidores Web.

Quando você é proprietário de um servidor Web e contrata os serviços de uma CDN, você passa a ter à sua disposição uma rede de servidores espalhados pelo mundo. Esta rede fica disponível para você de forma automática. Quando um cliente tenta acessar o seu site, na verdade, ele interage com o servidor CDN mais próximo dele geograficamente. Isso aumenta o desempenho, pois o cliente nunca acessa o seu servidor diretamente, mas sim o servidor CDN, que atua como um Proxy Reverso.

O servidor CDN armazena em cache os recursos estáticos do seu site, como imagens e folhas de estilo. Isso permite que o conteúdo seja entregue mais rapidamente ao cliente. Além disso, o CDN pode funcionar como um firewall, oferecendo uma camada adicional de proteção. Você pode configurar parâmetros de filtragem de tráfego nos servidores CDN. Por exemplo, você pode filtrar o acesso de clientes de determinados países ao seu site.

Essa configuração proporciona uma proteção adicional, e você não necessariamente precisará ter um firewall próximo ao seu servidor, pois o CDN, sendo também um Proxy Reverso, normalmente oferece um painel de controle contendo um firewall. Portanto, os servidores CDN podem funcionar como um filtro, bloqueando ou controlando o acesso.

Além do controle de acesso, os servidores CDN também podem ter opções integradas de otimização para melhorar ainda mais o desempenho. Por exemplo, eles podem otimizar o código-fonte do seu site, entregando um código otimizado para o cliente, que carregará o site e seus recursos mais rapidamente.

Outro exemplo comum de otimização é a otimização de imagens. Como o CDN armazena arquivos estáticos, especialmente imagens, você pode ativar, se a plataforma oferecer essa opção, uma otimização das imagens. Isso significa pegar uma imagem grande e reduzir o tamanho dessa imagem, sem perda de qualidade, para entregar um arquivo menor ao cliente. A transferência de um arquivo menor leva menos tempo do que a transferência de um arquivo maior.

Portanto, um servidor CDN pode oferecer várias opções de otimização, dependendo da plataforma que você contratar. Essas são apenas algumas das possibilidades genéricas para ajudá-lo a entender o que se quer dizer com otimizações.

Balanceador de Carga

A terceira aplicação típica de um Proxy Reverso é atuar como um balanceador de carga. O balanceamento de carga é um processo crucial quando um serviço é altamente requisitado e uma única máquina pode não ser capaz de atender a todas as solicitações.

Por exemplo, considere um servidor Web de um site muito acessado, como o Google. O Google não depende de um único servidor, mas sim de uma rede de servidores Web para atender às inúmeras solicitações que recebe por segundo.

Quando você acessa o site do Google, na verdade, você não está acessando diretamente um servidor Web. Em vez disso, você está interagindo com um sistema de balanceamento de carga, que é um balanceador de carga. Este balanceador de carga encaminha sua solicitação para um servidor Web na rede de servidores Web do Google.

O balanceador de carga pode operar de duas maneiras. Ele pode simplesmente fazer um sistema de rodízio, também conhecido como round-robin, enviando tráfego para o primeiro servidor, depois para o segundo, e assim por diante. Alternativamente, ele pode ser mais inteligente e ler o nível de carga de cada servidor, enviando tráfego para o servidor que estiver menos ocupado.

Essa é uma aplicação comum na prática e não está restrita a servidores Web. O balanceamento de carga também pode ser aplicado em serviços de e-mail.

Compartilhe:
Facebook
LinkedIn
WhatsApp
Comentários
Artigos Relacionados
Redes Sociais
Entre em contato com nosso Departamento de Engenharia.

Preencha o formulário abaixo e nossa equipe entrará em contato para oferecer a solução mais adequada para suas demandas.