real_ip_recursive

Директива `real_ip_recursive` включает рекурсивную замену IP-адреса клиента, полученного от доверенных прокси, в NGINX. — NGINX HTTP Core

real_ip_recursive
httpserverlocation
Синтаксисreal_ip_recursive on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `real_ip_recursive` заставляет NGINX рекурсивно просматривать список доверенных адресов в поисках реального IP клиента, когда присутствуют заголовки `X-Forwarded-For` или `X-Real-IP`. Это особенно полезно, когда используются несколько прокси, поскольку позволяет NGINX получить исходный IP-адрес клиента. Когда директива включена, если в заголовке содержится несколько IP-адресов, NGINX разберет их и определит фактический IP клиента на основе конфигурации доверенных прокси. При установке директивы `real_ip_recursive` в 'on' NGINX будет сверять значения заголовков с указанными доверенными адресами и заменять реальный IP клиента только если он совпадает с одним из этих адресов. Напротив, если директива установлена в 'off', NGINX будет использовать только непосредственный IP клиента, игнорируя дальнейшую обработку через дополнительные прокси. Такое поведение важно для обеспечения корректности механизмов управления доступом и логирования, чтобы они точно отражали истинное происхождение клиента в распределённых архитектурах, например в средах с балансировкой нагрузки.

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

http {
    set_real_ip_from 192.168.1.0/24;
    real_ip_recursive on;
}

Убедитесь, что доверенные IP-адреса правильно настроены с помощью `set_real_ip_from`. Неправильная конфигурация может привести к тому, что IP-адрес клиента будет определён неверно.

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