X-Forwarded-For X-Forwarded-For é um cabeçalho de extensão. O protocolo HTTP/1.1 (RFC 2616) não o define, ele foi originalmente introduzido pela Squid, um software proxy de cache, para representar o IP real do solicitante HTTP, e agora se tornou um padrão de fato, amplamente usado por proxies HTTP importantes, balanceamento de carga e outros serviços de encaminhamento, e integrado no padrão RFC 7239 (Extensão HTTP Encaminhada).
Em uma estrutura de rede com múltiplas camadas de proxies (por exemplo, uma CDN e um endereço IP Anti-DDoS Pro conectados a um firewall de aplicação web), os endereços IP de todos os proxies são adicionados ao campo x-encaminhado. Isso ocorre porque o servidor proxy escreve o endereço IP do proxy para cada encaminhamento.
O formato é o seguinte:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forja X-Encaminhado-Para
Adicionamos o cabeçalho de pedido X-Forwarded-For via cartman, que forja algo assim:
Usei o serviço SLB do Alibaba Cloud, SLB -> IIS, se recebemos o primeiro endereço IP, deve estar incorreto, o último endereço IP é o IP real do cliente.
(Na vida real, você precisa obtê-lo de acordo com sua própria arquitetura, e obter o endereço IP real do cliente depende de quantas camadas de proxies você já passou.Você acredita na primeira camada)
Para usar nginx como reverse proxy, você pode configurar da seguinte forma:
O servidor proxy mais externo não confia na entrada X-Forwarded-For do cliente, sobrescrevendo-a diretamente, em vez de anexá-la.
|