X-Forwarded-For X-Forwarded-For je hlavička rozšíření. Protokol HTTP/1.1 (RFC 2616) jej nedefinuje, původně jej zavedl Squid, software pro cache proxy, aby reprezentoval skutečnou IP adresu HTTP požadovatele, a nyní se stal de facto standardem, široce používaným hlavními HTTP proxy, load balancing a dalšími službami pro přeposílání, a byl zapsán do standardu RFC 7239 (Forwarded HTTP Extension).
V síťové struktuře s více vrstvami proxy (např. CDN a IP adresa Anti-DDoS Pro připojená k webovému aplikačnímu firewallu) jsou IP adresy všech proxy přidány do pole x-forwarded-for. Je to proto, že proxy server zapisuje proxy IP adresu pro každé přeposílání.
Formát je následující:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Přidáváme hlavičku požadavku X-Forwarded-For přes pošťáka, která vytváří něco takového:
Použil jsem SLB službu Alibaba Cloud, SLB -> IIS, pokud dostaneme první IP adresu, musí být nesprávná, poslední IP adresa je skutečná IP adresa klienta.
(V reálném životě je potřeba získat podle vlastní architektury a získání skutečné IP adresy klienta závisí na tom, kolika vrstvami proxy jste prošli.Věříš v první vrstvu)
Pro použití nginx jako reverzního proxy můžete nastavit následovně:
Nejvzdálenější proxy server nedůvěřuje X-Forwarded-For vstupu klienta, přímo jej přepisuje, místo aby jej připojil.
|