real_ip_recursive

`real_ip_recursive` 指令启用在 NGINX 中从受信任代理递归替换客户端 IP 地址。 — NGINX HTTP Core

real_ip_recursive
httpserverlocation
语法real_ip_recursive on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

`real_ip_recursive` 指令告诉 NGINX 在存在 `X-Forwarded-For` 或 `X-Real-IP` 头时,递归地遍历受信任地址列表以查找真实的客户端 IP。 这在使用多级代理的场景中特别有用,可让 NGINX 检索客户端的原始来源 IP。当启用时,如果该头包含多个 IP 地址,NGINX 会解析这些地址并根据其受信任代理的配置确定客户端的实际 IP。 当将 `real_ip_recursive` 指令设置为 'on' 时,NGINX 会将头部值与指定的受信任地址进行比对,只有当匹配其中某个地址时才替换客户端的真实 IP。相反,如果该指令设置为 'off',NGINX 将仅使用直接客户端的 IP 地址,忽略通过其他代理的进一步处理。该行为对于确保在分布式架构(例如负载均衡环境)中访问控制和日志能够准确反映真实客户端来源至关重要。

配置示例

http {
    set_real_ip_from 192.168.1.0/24;
    real_ip_recursive on;
}

确保使用 `set_real_ip_from` 正确配置受信任的 IP 地址。配置不当可能导致客户端的 IP 被错误识别。

在存在多个代理的环境中,未启用此指令可能会导致记录的 IP 或用于访问控制的 IP 错误。