set_real_ip_from
'set_real_ip_from' 指令指定了受信任的地址,NGINX 会从这些地址接受客户端的真实 IP。 — NGINX HTTP Core
set_real_ip_from
httpserverlocation
语法set_real_ip_from address;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`set_real_ip_from` 指令用于 NGINX 中定义一系列受信任的地址。这些地址在服务器位于反向代理或负载均衡器之后时用于识别客户端的真实 IP 地址。该指令对于确保基于真实客户端 IP(而非反向代理或负载均衡器的 IP 地址)的日志记录、分析和访问控制的准确性至关重要。 该指令通过允许你指定一个或多个 IP 地址或 CIDR(无类域间路由)网段作为受信任的来源来工作。收到请求时,NGINX 会将源地址与该列表进行比对。如果请求来自列出的某个地址,NGINX 将信任包含真实客户端 IP 的 `X-Forwarded-For` 或 `X-Real-IP` 头。否则,NGINX 将使用连接的原始源 IP 地址。 该指令可以放在 `http`、`server` 或 `location` 上下文中,提供配置上的灵活性。这在 NGINX 用作网关或反向代理的环境中尤其有用,尤其是当上游代理也配置为转发真实客户端 IP 时。
配置示例
http {
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 10.0.0.1;
real_ip_header X-Forwarded-For;
}⚠
如果未正确配置此指令,您的日志中可能会记录错误的 IP 地址。
⚠
请确保仅指定受信任的 IP 范围;否则,可能会使您的应用程序暴露于 IP 欺骗攻击。
⚠
使用多个 `set_real_ip_from` 语句可能会导致混淆;务必清楚地记录它们的用途。