X-Forwarded-For X-Forwarded-For ist ein Erweiterungsheader. Das HTTP/1.1 (RFC 2616)-Protokoll definiert es nicht; es wurde ursprünglich von Squid, einer Caching-Proxy-Software, eingeführt, um die tatsächliche IP des HTTP-Anforderers darzustellen, und ist inzwischen zu einem de facto-Standard geworden, der von großen HTTP-Proxys, Lastverteilungs- und anderen Weiterleitungsdiensten weit verbreitet verwendet wird und in den RFC 7239 (Forwarded HTTP Extension) Standard geschrieben wurde.
In einer Netzwerkstruktur mit mehreren Schichten von Proxys (z. B. eine CDN- und Anti-DDoS Pro-IP-Adresse, die mit einer Web-Anwendungs-Firewall verbunden sind) werden die IP-Adressen aller Proxys zum x-forwarded-for-Feld hinzugefügt. Das liegt daran, dass der Proxy-Server für jede Weiterleitung die Proxy-IP-Adresse schreibt.
Das Format ist wie folgt:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Wir fügen den X-Forwarded-For-Anfrage-Header per Postbote hinzu, der so etwas wie Folgendes fälscht:
Ich habe den SLB-Dienst von Alibaba Cloud, SLB -> IIS, verwendet; wenn wir die erste IP-Adresse bekommen, muss sie falsch sein, die letzte IP-Adresse ist die echte IP-Adresse des Kunden.
(Im echten Leben musst du es nach deiner eigenen Architektur abrufen, und die tatsächliche IP-Adresse des Kunden hängt davon ab, wie viele Proxy-Schichten du durchlaufen hast.Du glaubst an die erste Schicht)
Um nginx als Reverse Proxy zu verwenden, kannst du es wie folgt einrichten:
Der äußerste Proxyserver vertraut der X-Forwarded-For-Eingabe des Clients nicht und überschreibt sie direkt, anstatt sie anzuhängen.
|