set_real_ip_from

Директива 'set_real_ip_from' указывает доверенные адреса, от которых NGINX будет принимать реальный IP клиента. — NGINX HTTP Core

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

Описание

Директива `set_real_ip_from` используется в NGINX для определения списка доверенных адресов. Эти адреса применяются для определения реальных IP-адресов клиентов, когда серверы находятся за обратным прокси или балансировщиком нагрузки. Эта директива необходима для точного ведения логов, аналитики и управления доступом на основе реальных IP клиентов, а не IP-адреса обратного прокси или балансировщика нагрузки. Директива работает, позволяя указать один или несколько IP-адресов или диапазонов CIDR (Classless Inter-Domain Routing), которые считаются доверенными источниками. При получении запроса NGINX проверяет исходный адрес на соответствие этому списку. Если запрос приходит с одного из указанных адресов, NGINX будет доверять заголовкам `X-Forwarded-For` или `X-Real-IP`, содержащим реальный IP клиента. В противном случае NGINX будет использовать исходный IP-адрес соединения. Директиву можно размещать в контекстах `http`, `server` или `location`, что даёт гибкость в конфигурации. Это особенно полезно в средах, где NGINX используется как шлюз или обратный прокси, а также когда вышестоящие прокси настроены на пересылку реального IP клиента.

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

http {
    set_real_ip_from 192.168.1.0/24;
    set_real_ip_from 10.0.0.1;
    real_ip_header X-Forwarded-For;
}

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

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

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