real_ip_header

Директива real_ip_header задаёт имя HTTP-заголовка, используемого для получения реального IP-адреса клиента. — NGINX HTTP Core

real_ip_header
httpserverlocation
Синтаксисreal_ip_header string;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `real_ip_header` используется для определения того, какой HTTP-заголовок должен содержать реальный IP-адрес клиента, когда сервер NGINX находится за обратным прокси или балансировщиком нагрузки. Эта директива необходима для корректного логирования и обработки запросов клиентов, поскольку позволяет NGINX извлекать оригинальный IP клиента, а не IP прокси, пересланного запросом. При её настройке NGINX проверяет указанный заголовок во входящих запросах и использует его значение для замены значения, полученного из сокета. Это особенно полезно в сценариях с несколькими прокси, когда нужно гарантировать, что приложение правильно определяет исходный IP клиента. Директива принимает один аргумент, которым обычно является заголовок вроде `X-Forwarded-For`, `X-Real-IP` или пользовательский заголовок, используемый в вашей инфраструктуре. Директиву можно размещать в контекстах `http`, `server` или `location`, что даёт гибкость в зависимости от вашей архитектуры.

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

http {
    real_ip_header X-Forwarded-For;
}

Убедитесь, что прокси или балансировщик нагрузки настроен на отправку корректного заголовка с реальным IP клиента.

Неправильная конфигурация может привести к подделке, при которой ненадёжные клиенты смогут установить заголовок в любое произвольное значение.

Использование нескольких обратных прокси может потребовать дополнительной настройки для корректной передачи заголовков между ними.