$binary_remote_addr

Переменная $binary_remote_addr содержит двоичное представление IP-адреса клиента. — NGINX Core (HTTP)

$binary_remote_addr NGINX Core (HTTP)

Описание

Переменная $binary_remote_addr в NGINX используется для получения двоичного формата IP-адреса клиента, связанного с запросом. Эта переменная особенно полезна в конфигурациях управления доступом и фильтрации. При получении запроса NGINX извлекает IP-адрес клиента и преобразует его в 32-bit или 128-bit двоичный формат, в зависимости от того, использует ли клиент IPv4 или IPv6, соответственно. Используя эту переменную, системные администраторы могут эффективно сравнивать и сопоставлять IP-адреса в различных настройках контроля доступа, таких как 'allow' и 'deny'. Как правило, эта переменная устанавливается во время начальной обработки запроса, где она заполняется из структуры 'sockaddr', содержащей информацию об адресе клиента. Двоичное представление упрощает выполнение быстрых сравнений и проверок списков разрешённых или запрещённых IP-адресов без необходимости постоянного преобразования форматов. Благодаря тому, что она имеет двоичную форму, эта переменная значительно более эффективна для NGINX при обработке директив управления доступом, особенно в сценариях с высокой пропускной способностью.

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

http {
    server {
        location / {
            deny 192.168.1.1;
            allow all;
        }
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Эта переменная не так легко читается человеком по сравнению с её строковым эквивалентом ($remote_addr) и должна использоваться только в контекстах, где приемлем двоичный формат.

Необходимо проявлять осторожность при использовании её вместе с другими директивами, которые ожидают строковые форматы, чтобы избежать ошибок конфигурации.