X-Forwarded-For X-Forwarded-For er en utvidelsesheader. HTTP/1.1 (RFC 2616)-protokollen definerer den ikke, den ble opprinnelig introdusert av Squid, en caching-proxyprogramvare, for å representere den faktiske IP-adressen til HTTP-forespørren, og har nå blitt en de facto-standard, mye brukt av store HTTP-proxyer, lastbalansering og andre videresendingstjenester, og skrevet inn i RFC 7239 (Forwarded HTTP Extension)-standarden.
I en nettverksstruktur med flere lag av proxyer (f.eks. en CDN- og Anti-DDoS Pro IP-adresse koblet til en webapplikasjonsbrannmur), legges IP-adressene til alle proxyer til i feltet x-forwarded-for. Dette er fordi proxy-serveren skriver proxyens IP-adresse for hver videresending.
Formatet er som følger:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Vi legger til X-Forwarded-For-forespørselsheaderen via postmann, som lager noe som dette:
Jeg brukte Alibaba Clouds SLB-tjeneste, SLB -> IIS, hvis vi får den første IP-adressen, må den være feil, den siste IP-adressen er den ekte IP-adressen til klienten.
(I virkeligheten må du hente den ut fra din egen arkitektur, og å få tak i klientens faktiske IP-adresse avhenger av hvor mange lag med proxyer du har gått gjennom.Du tror på det første laget)
For å bruke nginx som en omvendt proxy, kan du sette det opp slik:
Den ytterste proxyserveren stoler ikke på X-Forwarded-For-inngangen fra klienten, og overskriver den direkte, i stedet for å legge den til.
|