X-Forwarded-For X-Forwarded-For är en tilläggsheader. HTTP/1.1 (RFC 2616)-protokollet definierar det inte, det introducerades ursprungligen av Squid, en cacheproxy-programvara, för att representera den verkliga IP-adressen för HTTP-begäraren, och har nu blivit en de facto-standard, flitigt använd av stora HTTP-proxyservrar, lastbalansering och andra vidarebefordringstjänster, och skriven in i RFC 7239 (Forwarded HTTP Extension)-standarden.
I en nätverksstruktur med flera lager av proxyfiler (t.ex. en CDN- och Anti-DDoS Pro IP-adress ansluten till en webbapplikationsbrandvägg) läggs IP-adresserna till alla proxyfiler i fältet x-forwarded-for. Detta beror på att proxyservern skriver proxyns IP-adress för varje vidarebefordran.
Formatet är som följer:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Vi lägger till X-Forwarded-For-request-headern via postman, vilket skapar något i stil med detta:
Jag använde Alibaba Clouds SLB-tjänst, SLB -> IIS, om vi får den första IP-adressen måste den vara felaktig, den sista IP-adressen är klientens riktiga IP-adress.
(I verkligheten behöver du hämta det enligt din egen arkitektur, och att få fram klientens verkliga IP-adress beror på hur många lager proxyservrar du har gått igenom.Du tror på det första lagret)
För att använda nginx som en reverse proxy kan du ställa in det på följande sätt:
Den yttersta proxyservern litar inte på klientens X-Forwarded-For-inmatning, utan skriver direkt över den, istället för att lägga till den.
|