$proxy_add_x_forwarded_for

Переменная $proxy_add_x_forwarded_for добавляет IP-адрес клиента в заголовок X-Forwarded-For при проксировании. — NGINX Core (HTTP)

$proxy_add_x_forwarded_for NGINX Core (HTTP)

Описание

Переменная $proxy_add_x_forwarded_for используется в NGINX для формирования заголовка X-Forwarded-For, который необходим в прокси-настройках для сохранения исходного IP-адреса клиента. Она фактически объединяет IP-адрес клиента с любыми существующими IP-адресами, уже указанными в заголовке X-Forwarded-For, обеспечивая сохранение цепочки адресов прокси при наличии нескольких прокси. Переменная устанавливается во время обработки запроса, когда сервер NGINX находится в режиме прокси, обычно в конфигурации блока location, использующего директиву proxy_pass. Когда NGINX обрабатывает запрос, если заголовок X-Forwarded-For присутствует, эта переменная возьмёт его текущее значение и добавит IP-адрес клиента. Если заголовок отсутствует, она будет содержать только IP-адрес клиента. Например, если IP клиента 192.168.1.5, а предыдущий прокси установил заголовок X-Forwarded-For как 10.1.1.1, то $proxy_add_x_forwarded_for будет равен "10.1.1.1, 192.168.1.5". Это важный механизм для приложений, размещённых за несколькими уровнями прокси, позволяющий корректно регистрировать и отслеживать исходные IP-адреса клиентов. Он особенно используется в сценариях балансировки нагрузки, чтобы сохранить целостность следа запроса.

Пример конфига

location /api {
    proxy_pass http://backend;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Если вы не установите заголовок X-Forwarded-For правильно, ваше приложение может не получить правильный IP-адрес клиента.

Убедитесь, что поведение проксирования NGINX настроено правильно, чтобы эффективно использовать эту переменную.

Остерегайтесь возможной подмены IP-адресов, если входящие заголовки от клиента нельзя доверять.