X-Forwarded-For X-Forwarded-For to nagłówek rozszerzenia. Protokół HTTP/1.1 (RFC 2616) go nie definiuje; został pierwotnie wprowadzony przez Squid, oprogramowanie do buforowania proxy, aby reprezentować rzeczywiste IP zapytania HTTP, a obecnie stał się de facto standardem, szeroko stosowanym przez główne serwery HTTP, load balancing i innymi usługami przekierowania, a także zapisany w standardzie RFC 7239 (Forwarded HTTP Extension).
W strukturze sieciowej z wieloma warstwami proxy (np. adres IP CDN i Anti-DDoS Pro połączony z zaporą aplikacji webowej), adresy IP wszystkich proxy są dodawane do pola x-forwarded-for. Dzieje się tak, ponieważ serwer proxy zapisuje adres IP proxy dla każdego przekierowania.
Format jest następujący:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Dodajemy nagłówek X-Forwarded-For przez listonosza, który tworzy coś takiego:
Korzystałem z usługi SLB Alibaba Cloud, SLB -> IIS, jeśli dostajemy pierwszy adres IP, to musi być błędny, ostatni adres IP to rzeczywisty adres IP klienta.
(W rzeczywistości musisz uzyskać go zgodnie z własną architekturą, a uzyskanie prawdziwego adresu IP klienta zależy od tego, ile warstw proxy przeszedłeś.Wierzysz w pierwszą warstwę)
Aby użyć nginx jako odwróconego proxy, możesz skonfigurować to następująco:
Zewnętrzny serwer proxy nie ufa wejściu klienta X-Forwarded-For, bezpośrednio je nadpisując, zamiast dołączać.
|