$remote_addr
Переменная $remote_addr содержит IP-адрес клиента, который делает запрос к серверу NGINX. — NGINX Core (HTTP)
Описание
Переменная $remote_addr заполняется NGINX, когда клиент делает запрос к серверу. Она получает IP-адрес клиента непосредственно из информации о сокете запроса, в частности из `struct sockaddr`, связанной с соединением. Эта переменная необходима для сценариев управления доступом и ведения логов, когда знание исходного IP запроса может определять поведение ответа или фиксировать источник для аудита. Если сервер NGINX находится за обратным прокси или балансировщиком нагрузки, значение $remote_addr может требовать дополнения другими переменными, такими как $http_x_forwarded_for, чтобы точно отразить исходный исходный IP клиента. В стандартной конфигурации значение обычно представляет собой IPv4- или IPv6-адрес, соответственно в стандартной точечно-десятичной записи или в записи, разделённой двоеточиями. При использовании этой переменной в настройках управления доступом (например, с директивами allow/deny) сервер может принимать решения в реальном времени на основе IP-адресов клиентов, повышая безопасность за счёт разрешения или блокировки доступа для конкретных IP. Гибкость этой переменной делает её фундаментальным элементом как в настройках безопасности, так и в конфигурации аналитики внутри NGINX.
Пример конфига
location / {
deny 192.168.1.0/24;
allow all;
access_log /var/log/nginx/access.log combined;
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifЕсли NGINX находится за балансировщиком нагрузки или обратным прокси, $remote_addr может не отражать фактический IP клиента, если заголовки прокси не настроены корректно.
Необходимо внимательно настраивать доверенные прокси в 'set_real_ip_from', чтобы уменьшить риск подделки IP-адресов при использовании обратных прокси.