X-Forwarded-For X-Forwarded-For er et udvidelsesheader. HTTP/1.1 (RFC 2616) protokollen definerer det ikke; det blev oprindeligt introduceret af Squid, en caching proxy-software, for at repræsentere HTTP-requesterens rigtige IP, og er nu blevet en de facto standard, bredt anvendt af store HTTP-proxies, load balancing og andre videresendelsestjenester, og skrevet ind i RFC 7239 (Forwarded HTTP Extension) standarden.
I en netværksstruktur med flere lag af proxies (f.eks. en CDN- og Anti-DDoS Pro IP-adresse forbundet til en webapplikationsfirewall) tilføjes IP-adresserne på alle proxies til x-forwarded-for-feltet. Dette skyldes, at proxyserveren skriver proxyens IP-adresse for hver videresendelse.
Formatet er som følger:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Vi tilføjer X-Forwarded-For-anmodningsheaderen via postbud, hvilket skaber noget i retning af dette:
Jeg brugte Alibaba Clouds SLB-tjeneste, SLB -> IIS, hvis vi får den første IP-adresse, må den være forkert, den sidste IP-adresse er klientens rigtige IP-adresse.
(I virkeligheden skal du hente det ud fra din egen arkitektur, og at få klientens rigtige IP-adresse afhænger af, hvor mange lag af proxyer du har været igennem.Du tror på det første lag)
For at bruge nginx som reverse proxy kan du sætte det op som følger:
Den yderste proxyserver stoler ikke på klientens X-Forwarded-For-input, men overskriver det direkte i stedet for at tilføje det.
|