$realip_remote_addr
Переменная $realip_remote_addr содержит исходный IP-адрес клиента, когда сервер NGINX используется за прокси или балансировщиком нагрузки. — NGINX Core (HTTP)
Описание
Переменная $realip_remote_addr предназначена для получения фактического удалённого IP-адреса клиента, когда NGINX настроен на работу за прокси или балансировщиком нагрузки. Такая ситуация часто возникает, когда клиент подключается через промежуточный сервер, и по стандартным методам соединения сложно определить исходный IP-адрес клиента. NGINX эффективно решает эту задачу с помощью заголовков X-Real-IP или X-Forwarded-For HTTP, которые являются общепринятыми стандартами передачи исходного IP-адреса. Когда NGINX получает запрос, он проверяет эти заголовки в указанном порядке, и если в одном из заголовков найден IP-адрес, переменная $realip_remote_addr устанавливается в это значение. Если заголовки отсутствуют, переменная по умолчанию принимает прямой IP-адрес клиента, видимый с точки зрения NGINX. Правильная интерпретация этой переменной обычно требует корректной настройки как параметров вышестоящего прокси, так и заголовков, используемых для передачи IP-адресов клиентов. Это обеспечивает корректное отображение и запись информации, что приводит к более точным данным и мерам безопасности. Как правило, значение $realip_remote_addr отражает либо фактический удалённый IP-адрес клиента, отправившего запрос, либо возвращается к последнему известному IP-адресу, если исходный определить не удалось. Это особенно важно в сценариях с множественными уровнями сетей, поскольку улучшает ведение журналов и возможности контроля доступа, обеспечивая точную идентификацию клиента.
Пример конфига
http {
set_real_ip_from 192.0.2.0/24; # Allow this range to set the real IP
real_ip_header X-Forwarded-For; # Specify the header to use
server {
listen 80;
location / {
# Access can be logged with the original client's IP
access_log /var/log/nginx/access.log main;
}
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, locationУбедитесь, что директива `set_real_ip_from` правильно настроена, чтобы разрешить определённым IP-адресам прокси изменять IP клиента.
Будьте осторожны с ненадёжными прокси; в противном случае это может привести к подделке IP-адресов.
Директиву `real_ip_header` нужно установить в соответствующий заголовок (например, `X-Forwarded-For` или `X-Real-IP`), который используют ваши проксируемые запросы. Если она не установлена, `$realip_remote_addr` может не получить правильное значение.