X-Forwarded-For X-Forwarded-For este un antet de extensie. Protocolul HTTP/1.1 (RFC 2616) nu îl definește, acesta a fost introdus inițial de Squid, un software proxy de caching, pentru a reprezenta IP-ul real al solicitantului HTTP și a devenit acum un standard de facto, folosit pe scară largă de principalele proxy-uri HTTP, echilibrarea încărcării și alte servicii de redirecționare, fiind integrat în standardul RFC 7239 (Forwarded HTTP Extension).
Într-o structură de rețea cu mai multe straturi de proxy-uri (de exemplu, un CDN și o adresă IP Anti-DDoS Pro conectate la un firewall pentru aplicații web), adresele IP ale tuturor proxy-urilor sunt adăugate în câmpul x-forwarded-for. Acest lucru se datorează faptului că serverul proxy scrie adresa IP proxy pentru fiecare redirecționare.
Formatul este următorul:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Adăugăm antetul cererii X-Forwarded-For prin postman, care creează ceva de genul:
Am folosit serviciul SLB al Alibaba Cloud, SLB -> IIS, dacă primim prima adresă IP, trebuie să fie incorectă, ultima adresă IP este adresa reală a clientului.
(În viața reală, trebuie să o obții conform propriei tale arhitecturi, iar obținerea adresei IP reale a clientului depinde de câte straturi de proxy-uri ai trecut.Crezi în primul strat)
Pentru folosirea nginx ca proxy invers, poți configura astfel:
Cel mai extern server proxy nu are încredere în intrarea X-Forwarded-For a clientului, suprascriindu-o direct, în loc să o adaugă.
|