Модуль http_realip#

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

Пример конфигурации#

set_real_ip_from  192.168.1.0/24;
set_real_ip_from  192.168.2.1;
set_real_ip_from  2001:0db8::/32;
real_ip_header    X-Forwarded-For;
real_ip_recursive on;

Директивы#

set_real_ip_from#

Синтаксис:

set_real_ip_from адрес | CIDR | unix:;

Умолчание:

Контекст:

http, server, location

Задает доверенные адреса, которые передают верный адрес для замены. Если указано специальное значение unix:, доверенными будут считаться все UNIX-сокеты. Доверенные адреса могут быть также заданы при помощи имени хоста.

real_ip_header#

Синтаксис:

real_ip_header поле | X-Real-IP | X-Forwarded-For | proxy_protocol;

Умолчание:

real_ip_header X-Real-IP;

Контекст:

http, server, location

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

Значение поля заголовка запроса, содержащее необязательный порт, также используется для замены порта клиента. Адрес и порт должны быть указаны согласно RFC 3986.

Параметр proxy_protocol меняет адрес клиента на указанный в заголовке PROXY-протокола. Протокол PROXY должен быть предварительно включен при помощи установки параметра proxy_protocol в директиве listen.

real_ip_recursive#

Синтаксис:

real_ip_recursive on | off;

Умолчание:

real_ip_recursive off;

Контекст:

http, server, location

При выключенном рекурсивном поиске исходный адрес клиента, совпадающий с одним из доверенных адресов, заменяется на последний адрес, переданный в поле заголовка запроса, заданного директивой real_ip_header. При включенном рекурсивном поиске исходный адрес клиента, совпадающий с одним из доверенных адресов, заменяется на последний не доверенный адрес, переданный в заданном поле заголовка запроса.

Встроенные переменные#

$realip_remote_addr#

хранит исходный адрес клиента

$realip_remote_port#

хранит исходный порт клиента