$binary_remote_addr

$binary_remote_addr 变量包含客户端 IP 地址的二进制表示。 — NGINX Core (HTTP)

$binary_remote_addr NGINX Core (HTTP)

说明

NGINX 中的 $binary_remote_addr 变量用于获取与请求关联的客户端 IP 地址的二进制格式。该变量在访问控制和过滤配置中尤其有用。当接收到请求时,NGINX 会检索客户端的 IP 地址,并将其转换为 32-bit 或 128-bit 的二进制格式,具体取决于客户端使用的是 IPv4 还是 IPv6。通过使用该变量,系统管理员可以在各种访问控制设置(例如 'allow' 和 'deny')中高效地比较和匹配 IP 地址。\n\n通常,该变量在请求的初始处理期间设置,从包含客户端地址信息的 'sockaddr' 结构中填充。二进制表示使 NGINX 能够直接对允许或拒绝的 IP 列表进行快速比较和检查,而无需在格式之间来回转换。由于它是二进制形式,该变量在处理访问控制指令时对 NGINX 来说效率要高得多,尤其是在高吞吐量场景中。

配置示例

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

子系统

http

可缓存

上下文

http, server, location, if

与其字符串等价 ($remote_addr) 相比,此变量不易被人类读取,应仅在接受二进制格式的上下文中使用。

在与其他期望字符串格式的指令一起使用时,应当谨慎,以免导致配置错误。