X-Forwarded-For X-Forwarded-For е разширителна заглавка. Протоколът HTTP/1.1 (RFC 2616) не го дефинира, първоначално е въведен от Squid, кеширащ прокси софтуер, за да представя реалния IP адрес на HTTP заявителя, и сега се е превърнал в де факто стандарт, широко използван от основните HTTP проксита, балансиране на натоварването и други услуги за препращане, и е записан в стандарта RFC 7239 (Forwarded HTTP Extension).
В мрежова структура с множество слоеве проксита (например CDN и Anti-DDoS Pro IP адрес, свързан към защитна стена за уеб приложение), IP адресите на всички проксита се добавят към полето x-forwarded-for. Това е така, защото прокси сървърът записва IP адреса на прокси за всяко препращане.
Форматът е следният:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Добавяме заглавието X-Forwarded-For чрез Postman, което създава нещо подобно:
Използвах SLB услугата на Alibaba Cloud, SLB -> IIS, ако получим първия IP адрес, той трябва да е грешен – последният IP адрес е истинският IP адрес на клиента.
(В реалния живот трябва да го получите според собствената си архитектура, а получаването на реалния IP адрес на клиента зависи от това през колко слоя проксита сте преминали.Вярваш в първия слой)
За използване на nginx като обратен прокси можете да го настроите по следния начин:
Най-външният прокси сървър не се доверява на X-Forwarded-For входа на клиента, като го презаписва директно, вместо да го добавя.
|