X-Forwarded-For X-Forwarded-For — це розширений заголовок. Протокол HTTP/1.1 (RFC 2616) не визначає його, він був спочатку представлений компанією Squid — програмним забезпеченням кешування проксі, щоб представляти реальну IP HTTP-запитувача, і тепер став де-факто стандартом, широко використовуваним основними HTTP-проксі, сервісами балансування навантаження та іншими сервісами пересилання, і записаним у стандарті RFC 7239 (Forwarded HTTP Extension).
У структурі мережі з кількома шарами проксі (наприклад, CDN та IP-адреса Anti-DDoS Pro, підключена до міжмережевого екрану веб-додатків), IP-адреси всіх проксі додаються до поля x-forwarded-for. Це пов'язано з тим, що проксі-сервер записує IP-адресу проксі для кожного пересилання.
Формат такий:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Кувати X-Forwarded-For
Ми додаємо заголовок запиту X-Forwarded-For через Postman, який створює приблизно таке:
Я користувався SLB-сервісом Alibaba Cloud, SLB -> IIS, якщо ми отримуємо першу IP-адресу, вона має бути неправильною, остання IP-адреса — це справжня IP-адреса клієнта.
(У реальному житті потрібно отримати її відповідно до власної архітектури, а отримання справжньої IP-адреси клієнта залежить від того, скільки шарів проксі, які ви пройшли.Ти віриш у перший рівень)
Для використання nginx як зворотного проксі можна налаштувати так:
Зовнішній проксі-сервер не довіряє вводу X-Forwarded-For клієнта, безпосередньо перезаписуючи його, замість того щоб додавати.
|