“Proxy” descreve uma posição, não um produto: algo que fica no meio de uma conexão e repassa o tráfego. O verbete do nosso glossário sobre o que é um servidor proxy explica a ideia básica. Este artigo vai um nível mais fundo nos dois formatos que você encontra com mais frequência, o forward proxy (proxy de encaminhamento) e o proxy reverso, que usam a mesma mecânica, mas trabalham para lados opostos da conexão.
A confusão é compreensível. Os dois recebem uma requisição, os dois a repassam e os dois ocultam algo. A diferença está em qual lado cada um representa. Um forward proxy age em nome do cliente, que é como funcionam os proxies residenciais. Um proxy reverso age em nome do servidor, que é o que o Nginx ou uma CDN fazem na frente de um site. Depois que você sabe a qual lado um proxy serve, o resto se encaixa.
A diferença em uma frase para cada um
- Um forward proxy fica na frente dos clientes. O cliente escolhe enviar seu tráfego por ele, e o site vê o endereço IP do proxy em vez do endereço do cliente.
- Um proxy reverso fica na frente dos servidores. Os clientes se conectam a ele acreditando que é o site, e ele decide qual servidor de backend vai responder.
Ou seja, um forward proxy oculta o cliente do servidor, e um proxy reverso oculta os servidores do cliente.
Como funciona um forward proxy
Um forward proxy é configurado do lado do cliente. Você informa o endereço dele em um navegador, em uma configuração do sistema operacional, em um script ou em uma ferramenta de scraping e, a partir daí, suas requisições passam primeiro pelo proxy.
- Seu cliente se conecta ao proxy e, na maioria dos serviços comerciais, se autentica com nome de usuário e senha.
- Para um site HTTPS, o cliente pede ao proxy que abra um túnel até o destino. O proxy faz a conexão de saída e repassa os bytes criptografados sem lê-los.
- O destino vê a conexão chegando do endereço IP do proxy, então aplica sua localização, reputação e limites de requisição a esse endereço, e não ao seu.
Há décadas as empresas usam forward proxies para filtrar e registrar o que os funcionários acessam na web. O mercado comercial de proxies também é feito de forward proxies: um serviço de proxy residencial ou ISP oferece endereços IP de saída nos lugares de que você precisa, e os sites que você visita veem esses endereços. Muitos provedores colocam um único gateway na frente de um grande pool e escolhem a saída para você a cada requisição, que é o modelo backconnect. Às vezes as pessoas procuram isso como “reverse rotating proxy”, mas continua sendo um forward proxy: ele age em nome de você, o cliente.
Como funciona um proxy reverso
Um proxy reverso é configurado do lado do servidor, e os clientes geralmente nem sabem que ele existe. O registro DNS do site aponta para o proxy reverso, então todo visitante se conecta a ele.
- O navegador do visitante se conecta ao que acredita ser o site.
- O proxy reverso normalmente termina a conexão TLS, lê a requisição e decide para onde ela deve ir: qual servidor de backend, qual serviço, ou se a resposta sai direto do cache.
- Ele encaminha a requisição ao backend escolhido, muitas vezes acrescentando um cabeçalho como
X-Forwarded-Forpara que a aplicação continue sabendo o endereço IP real do visitante. - Ele devolve a resposta do backend ao visitante como se ele mesmo a tivesse produzido.
Nginx, HAProxy, Envoy e Traefik são proxies reversos comuns, e CDNs e serviços de proteção contra DDoS funcionam da mesma forma em escala global. Os motivos para usar um são balanceamento de carga entre servidores, um ponto único para gerenciar certificados TLS, cache, compressão e uma camada de proteção capaz de absorver ataques e bloquear tráfego malicioso antes que ele chegue à aplicação.
Lado a lado
| Forward proxy | Proxy reverso | |
|---|---|---|
| Age em nome de | O cliente | O servidor |
| Quem configura | O usuário ou a empresa dele | O operador do site |
| Quem sabe que ele existe | O cliente | O operador; os visitantes geralmente não |
| O que o outro lado vê | O IP do proxy em vez do IP do cliente | O proxy em vez dos servidores reais |
| Software ou serviço típico | Squid, gateways corporativos, serviços de proxy residencial e ISP | Nginx, HAProxy, Envoy, CDNs, firewalls de aplicação web |
| Usos típicos | Testes de localização, coleta de dados, controle de acesso, privacidade em relação ao destino | Balanceamento de carga, TLS, cache, proteção contra ataques |
Um terceiro tipo, o proxy transparente, intercepta o tráfego sem que o cliente configure nada, por exemplo na rede de um hotel ou de uma escola. Ele age em nome do operador da rede, e não em seu nome, e não altera o quadro de forward e reverso descrito acima.
Quando você precisa de um forward proxy
Você precisa de um forward proxy quando a questão é como o seu próprio tráfego de saída aparece para outros sites:
- Você precisa ver um site a partir de outro país ou cidade. Preços, resultados de busca, anúncios e conteúdo mudam conforme a localização, e só um endereço IP naquele lugar mostra a versão local.
- Você coleta dados públicos da web em volume. Distribuir as requisições entre muitos endereços IP residenciais mantém cada endereço abaixo dos limites que os sites aplicam por IP.
- Você gerencia contas que devem manter uma única localização. Aqui o modelo de proxies ISP se encaixa: cada proxy permanece na cidade e no ISP que você escolher durante todo o período de cobrança, e você mantém o mesmo nome de usuário.
- Sua empresa controla o acesso de saída. Um forward proxy corporativo aplica políticas e mantém um registro do que sai da rede.
Escolher entre protocolos é uma questão separada da escolha do tipo de proxy; nosso guia sobre proxies HTTP vs SOCKS5 trata disso.
Quando você precisa de um proxy reverso
Você precisa de um proxy reverso quando a questão é como o tráfego de entrada chega aos seus próprios servidores:
- Você opera mais de um servidor de backend e precisa distribuir a carga e continuar funcionando se um deles cair.
- Você quer um único ponto para cuidar de TLS, redirecionamentos, compressão e cache.
- Você quer proteção contra inundações de tráfego e bots abusivos antes que as requisições cheguem à sua aplicação.
- Você quer expor vários serviços internos sob um único domínio, por exemplo
/apie/app.
Se você apenas mantém um site, precisa de um proxy reverso, não de um forward proxy, e muitas vezes o seu provedor de hospedagem ou a sua CDN já o operam para você.
Quando você precisa dos dois
Muitas empresas usam os dois, para direções diferentes de tráfego. Uma equipe de inteligência de preços, por exemplo, envia sua coleta de saída por forward proxies nos mercados que acompanha e coloca um proxy reverso na frente do painel e da API que seus clientes usam.
Os dois também se encontram em cada requisição que você envia por um forward proxy. A maioria dos grandes sites fica atrás de um proxy reverso ou de uma CDN que inspeciona os visitantes antes que a aplicação os veja. É essa camada de borda que avalia o seu forward proxy: a reputação e o tipo do endereço IP dele, quantas requisições chegam dele e se a conexão parece a de um navegador real. É por isso que o IP de saída importa mais do que o software do proxy, e por isso que requisições vindas de faixas de datacenter são desafiadas com muito mais frequência do que requisições de conexões domésticas.
Perguntas frequentes
Uma VPN é um forward proxy?
Ela cumpre um papel parecido, porque age em nome do cliente e oculta o endereço IP dele dos sites. Uma VPN geralmente transporta todo o tráfego do dispositivo no nível da rede, enquanto um forward proxy é configurado por aplicação ou por requisição.
Um balanceador de carga é um proxy reverso?
A maioria dos balanceadores de carga que operam no nível HTTP são proxies reversos: eles aceitam a conexão do cliente e escolhem um backend para encaminhá-la. Alguns balanceadores operam em um nível mais baixo e apenas roteiam pacotes, o que faz deles outro tipo de ferramenta.
Um mesmo servidor pode atuar como forward proxy e proxy reverso?
Sim. Softwares como Nginx ou Squid podem ser configurados de uma forma ou de outra, e algumas configurações fazem as duas coisas. O papel depende da configuração e de qual tráfego o proxy trata, não do software.
Proxies residenciais são forward proxies ou proxies reversos?
Forward proxies. Você os configura no seu cliente, eles agem em seu nome, e os sites que você visita veem o endereço IP residencial de saída em vez do seu.
Conclusão
Pergunte de que lado o proxy está. Se ele representa você perante os sites que você visita, é um forward proxy, e o que importa são os endereços IP que ele oferece. Se ele representa um site perante seus visitantes, é um proxy reverso, e o foco é carga, segurança e velocidade. A maioria das equipes que coletam dados da web precisa do primeiro, e a maioria das equipes que mantêm um site já tem o segundo. Os forward proxies da Shifter vêm com teste gratuito em shifter.io/order, para que você os teste nos sites que importam para você antes de escolher um plano.