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 Forge X-Forwarded-For
Мы добавляем заголовок запроса X-Forwarded-For через Postman, который формирует примерно так:
Я использовал SLB-сервис Alibaba Cloud, SLB-> IIS, если мы получаем первый IP-адрес, значит, он неверный, последний IP-адрес — это настоящий IP-адрес клиента.
(В реальной жизни вам нужно получить его согласно вашей собственной архитектуре, а получение реального IP-адреса клиента зависит от того, сколько слоёв прокси вы прошли.Ты веришь в первый слой)
Для использования nginx в качестве обратного прокси можно настроить его следующим образом:
Внешний прокси-сервер не доверяет вводу X-Forwarded-For клиента, напрямую перезаписывая его, вместо того чтобы добавлять.
|