O que é um proxy reverso?
Um proxy reverso é um servidor que fica na frente dos servidores web e encaminha as solicitações do cliente (por exemplo, navegador web) para esses servidores web. Os proxy reversos normalmente são implementados para ajudar a aumentar a segurança, o desempenho e a confiabilidade. Para entender melhor como funciona um proxy reverso e os benefícios que ele pode proporcionar, vamos primeiro definir o que é um servidor proxy.
Relatório
2024 GigaOm Radar for CDN
Artigo
Os três desafios para proteger e conectar serviços de aplicativos
O que é um servidor proxy?
Um proxy de encaminhamento, frequentemente chamado de proxy, servidor proxy, ou web proxy, é um servidor que reside na frente de um grupo de máquinas clientes. Quando esses computadores fazem solicitações a sites e serviços na internet, o servidor proxy intercepta essas solicitações e em seguida, se comunica com servidores web em nome desses clientes, como um intermediário.
Por exemplo, vamos citar três computadores envolvidos em uma típica comunicação de proxy de encaminhamento:
- A: Este é um computador doméstico do usuário
- B: Este é um servidor proxy de encaminhamento
- C: Este é um servidor de origem do site (onde os dados do site são armazenados)
Em uma comunicação padrão da internet, o computador A alcançaria diretamente o computador C, com o cliente enviando solicitações para o servidor de origem e o servidor de origem respondendo ao cliente. Quando um proxy de encaminhamento está instalado, o computador A, em vez disso, enviará as solicitações para B, que então encaminhará a solicitação para C. C enviará então uma resposta para B, que encaminhará a resposta de volta para A.
CDN ultrarrápida
Aumente o desempenho usando a CDN da Cloudflare
Por que alguém acrescentaria mais esse intermediário à sua atividade na internet? Há algumas razões pelas quais se pode querer usar um proxy:
- Para evitar restrições de navegação estatal ou institucional - Alguns governos, escolas e outras organizações usam firewalls para dar a seus usuários acesso a uma versão limitada da internet. Um proxy de encaminhamento pode ser usado para contornar essas restrições, pois ele permite que o usuário se conecte ao proxy em vez de se conectar diretamente aos sites que estão visitando.
- Para bloquear o acesso a determinados conteúdos - Em contrapartida, os proxies também podem ser configurados para bloquear o acesso de um grupo de usuários a determinados sites. Por exemplo, uma rede escolar pode ser configurada para se conectar à web por meio de um proxy que permite regras de filtragem de conteúdo, recusando-se a encaminhar respostas do Facebook e de outros sites de mídia social.
- Para proteger a identidade on-line - Em alguns casos, os usuários regulares da internet simplesmente desejam aumentar o anonimato on-line, mas em outros casos, os usuários da internet vivem em lugares onde o governo pode impor sérias consequências aos dissidentes políticos. Criticar o governo em um fórum da web ou nas mídias sociais pode resultar em multas ou prisão para esses usuários. Se um desses dissidentes usar um proxy de encaminhamento para se conectar a um site em que postam comentários politicamente sensíveis, o endereço de IP usado para postar os comentários será mais difícil de rastrear até o dissidente. Somente o endereço de IP do servidor proxy ficará visível.
Qual é a diferença do proxy reverso?
Um proxy reverso é um servidor que reside na frente de um ou mais servidores web, interceptando solicitações dos clientes. Isso é diferente de um proxy de encaminhamento, em que o proxy reside na frente dos clientes. Com um proxy reverso, quando os clientes enviam solicitações ao servidor de origem de um site, essas solicitações são interceptadas na borda da rede pelo servidor proxy reverso. O servidor proxy reverso então enviará solicitações e receberá respostas do servidor de origem.
A diferença entre um proxy de encaminhamento e um proxy reverso é sutil, mas importante. Uma maneira simplificada de resumir seria dizer que um proxy de encaminhamento reside na frente de um cliente e garante que nenhum servidor de origem jamais se comunique diretamente com aquele cliente específico. Por outro lado, um proxy reverso reside na frente de um servidor de origem e garante que nenhum cliente jamais se comunique diretamente com esse servidor de origem.
Mais uma vez, vamos ilustrar isso nomeando os computadores envolvidos:
- D: Qualquer número de computadores domésticos dos usuários
- E: Este é um servidor proxy reverso
- F: Um ou mais servidores de origem
Normalmente todas as solicitações de D irão diretamente para F, e F enviará respostas diretamente para D. Com um proxy reverso, todas as solicitações de D irão diretamente para E, e E enviará suas solicitações para F e receberá respostas de F. O servidor E então repassará as respostas apropriadas para D.
A seguir, resumimos alguns dos benefícios de um proxy reverso:
- Balanceamento de carga - Um site popular que recebe milhões de usuários todos os dias pode não ser capaz de lidar com todo o tráfego de entrada do site com um único servidor de origem. Em vez disso, o site pode ser distribuído entre um pool de servidores diferentes, todos gerenciando solicitações para o mesmo site. Nesse caso, um proxy reverso pode fornecer uma solução de balanceamento de carga que distribuirá o tráfego de entrada uniformemente entre os diferentes servidores para evitar que um único servidor fique sobrecarregado. Caso um servidor falhe completamente, outros servidores podem se apresentar para gerenciar o tráfego.
- Proteção contra ataques - Com um proxy reverso implementado, um site ou serviço nunca precisa revelar o endereço de IP de seu(s) servidor(es) de origem. Isso torna muito mais difícil para os invasores potencializar um ataque dirigido contra eles, como um ataque DDoS. Em vez disso, os invasores só conseguirão atacar o proxy reverso, como a CDN da Cloudflare, que terá uma segurança mais rígida e mais recursos para evitar um ataque cibernético.
- Balanceamento de Carga Global de Servidores (GSLB) - Nesta forma de balanceamento de carga, um site pode ser distribuído por vários servidores ao redor do mundo e o proxy reverso enviará os clientes para o servidor que estiver geograficamente mais próximo deles. Isso diminui as distâncias que as solicitações e respostas precisam percorrer, minimizando os tempos de carga.
- Armazenamento em cache - Um proxy reverso também pode armazenar conteúdo em cache, resultando em um desempenho mais rápido. Por exemplo, se um usuário em Paris visitar um site com proxy reverso e servidores web em Los Angeles, o usuário poderá se conectar a um servidor proxy reverso local em Paris, que então terá que se comunicar com um servidor de origem em Los Angeles. O servidor proxy pode então armazenar (ou salvar temporariamente) os dados de resposta. Os usuários parisienses subsequentes que navegarem no site obterão então a versão armazenada localmente em cache do servidor proxy reverso parisiense, o que resulta em um desempenho muito mais rápido.
- Criptografia SSL - Criptografar e descriptografar comunicações SSL (ou TLS) para cada cliente pode ser computacionalmente caro para um servidor de origem. É possível configurar um proxy reverso para descriptografar todas as solicitações recebidas e criptografar todas as respostas enviadas, liberando recursos valiosos no servidor de origem.
Como implementar um proxy reverso
Algumas empresas criam seus próprios proxies reversos, mas isso requer recursos intensivos de engenharia de software e hardware, além de um investimento significativo em hardware físico. Uma das maneiras mais fáceis e econômicas de aproveitar todos os benefícios de um proxy reverso é se inscrever em um serviço de CDN. Por exemplo, a CDN da Cloudflare oferece todos os recursos de desempenho e segurança listados acima, bem como muitos outros.