O Que É um Reverse Proxy? Roteador de Requisições na Frente
Um reverse proxy é um servidor que aceita requisições de clientes em nome de um ou mais servidores backend, encaminhando cada requisição e retornando a resposta do backend como se fosse a origem.
Os clientes falam com o reverse proxy, não com os servidores reais atrás dele. Essa indireção permite adicionar terminação TLS, cache, load balancing e roteamento em um só lugar. Quando um pipeline faz o deploy de um serviço web, um reverse proxy geralmente fica na frente dele, e a má configuração do proxy é uma causa frequente de erros pós-deploy.
Reverse vs forward
Um forward proxy age em nome de clientes que alcançam a internet; um reverse proxy age em nome de servidores que recebem tráfego. O reverse proxy esconde a topologia do backend dos clientes.
O que ele trata
- Terminação TLS para que os backends possam falar HTTP puro internamente.
- Roteamento de requisições para o backend certo por host ou path.
- Cache e compressão para aliviar a carga do backend.
- Distribuição básica de carga entre instâncias.
Terminação TLS
O reverse proxy comumente detém o certificado e descriptografa o HTTPS, passando HTTP puro para os backends em uma rede confiável. Um deploy que esquece de anexar o certificado aqui quebra o endpoint público.
Reverse proxies em deploys
Ferramentas como Nginx, Envoy e ingress controllers gerenciados atuam como reverse proxies. Lançar uma nova versão frequentemente significa atualizar o proxy para rotear para backends novos, que é onde os 502s aparecem se o upstream não estiver pronto.
Por que 502s e 504s acontecem
Um reverse proxy retorna 502 quando o backend dá uma resposta inválida e 504 quando o backend dá timeout. Durante um deploy, esses frequentemente significam que a nova instância ainda está iniciando e ainda não está aceitando tráfego.
Erros transitórios de proxy
502s e 504s breves enquanto os backends se reciclam são tipicamente transitórios. Os runners da Latchkey repetem automaticamente as respostas transitórias de proxy para endpoints comuns, então um reinício momentâneo do upstream durante um deploy não falha um step que, de resto, está saudável.
Principais conclusões
- Um reverse proxy fica na frente dos servidores backend e encaminha as requisições dos clientes para eles.
- Ele centraliza a terminação TLS, o roteamento, o cache e a distribuição de carga.
- Durante deploys, ele retorna 502 ou 504 quando um backend ainda não está pronto.