real_ip_header

real_ip_header 指令指定用于获取客户端真实 IP 地址的 HTTP 头的名称。 — NGINX HTTP Core

real_ip_header
httpserverlocation
语法real_ip_header string;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`real_ip_header` 指令用于定义当 NGINX 服务器位于反向代理或负载均衡器之后时,哪个 HTTP 头应包含客户端的真实 IP 地址。该指令对于准确记录和处理客户端请求非常重要,因为它允许 NGINX 提取原始客户端 IP,而不是转发请求的代理的 IP。 配置后,NGINX 会检查传入请求中指定的头,并使用其中的值替换从 socket 得到的值。这在存在多个代理的场景中特别有用,能够确保应用正确识别最初发起请求的客户端 IP。 该指令接受单个参数,通常是像 `X-Forwarded-For`、`X-Real-IP` 或您基础设施使用的自定义头这样的头。该指令可以放置在 `http`、`server` 或 `location` 上下文中,根据您的架构提供灵活性。

配置示例

http {
    real_ip_header X-Forwarded-For;
}

确保代理或负载均衡器配置为发送用于真实客户端 IP 的正确 HTTP 头部。

不正确的配置可能导致伪造,使不受信任的客户端能够将该头部设置为任意值。

使用多个反向代理可能需要为头部转发进行额外配置。