X-Forwarded-For X-Forwarded-For yra plėtinio antraštė. HTTP/1.1 (RFC 2616) protokolas to neapibrėžia, jį iš pradžių pristatė Squid, talpyklos tarpinio serverio programinė įranga, kad atspindėtų tikrąjį HTTP užklausos teikėjo IP, o dabar tapo de facto standartu, plačiai naudojamu pagrindinių HTTP tarpinių serverių, apkrovos balansavimo ir kitų persiuntimo paslaugų ir įrašytu į RFC 7239 (Forwarded HTTP Extension) standartą.
Tinklo struktūroje su keliais tarpinių serverių sluoksniais (pvz., CDN ir Anti-DDoS Pro IP adresas, prijungtas prie žiniatinklio programos užkardos), visų tarpinių serverių IP adresai pridedami prie x-forwarded-for lauko. Taip yra todėl, kad tarpinis serveris rašo tarpinio serverio IP adresą kiekvienam persiuntimui.
Formatas yra toks:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Mes pridedame X-Forwarded-For užklausos antraštę per paštininką, kuri sukuria kažką panašaus:
Aš naudojau "Alibaba Cloud" SLB paslaugą, SLB -> IIS, jei gauname pirmąjį IP adresą, jis turi būti neteisingas, paskutinis IP adresas yra tikrasis kliento IP adresas.
(Realiame gyvenime turite jį gauti pagal savo architektūrą, o tikrojo kliento IP adreso gavimas priklauso nuo to, kiek tarpinių serverių sluoksnių perėjote.Jūs tikite pirmuoju sluoksniu)
Norėdami naudoti nginx kaip atvirkštinį tarpinį serverį, galite jį nustatyti taip:
Išorinis tarpinis serveris nepasitiki kliento X-Forwarded-For įvestimi, tiesiogiai ją perrašydamas, o ne pridėdamas.
|