$proxy_add_x_forwarded_for
$proxy_add_x_forwarded_for 变量在代理设置中将客户端的 IP 地址追加到 X-Forwarded-For 头中。 — NGINX Core (HTTP)
$proxy_add_x_forwarded_for
NGINX Core (HTTP)
说明
$proxy_add_x_forwarded_for 变量在 NGINX 中用于构建 X-Forwarded-For 头,这在代理设置中对于保留原始客户端的 IP 地址至关重要。它会将客户端的 IP 地址与 X-Forwarded-For 头中已有的任何已定义 IP 地址有效地合并,确保持多重代理参与时代理地址链得以保留。该变量在请求处理期间设置,当 NGINX 服务器处于代理模式时,通常在使用 proxy_pass 指令的 location block 的配置中。\n\n当 NGINX 处理请求时,如果存在 X-Forwarded-For 头,该变量将取其现有值并追加客户端的 IP 地址。如果该头不存在,则只包含客户端的 IP 地址。例如,如果客户端的 IP 为 192.168.1.5,且前一个代理已将 X-Forwarded-For 头设置为 10.1.1.1,则 $proxy_add_x_forwarded_for 的结果将是 "10.1.1.1, 192.168.1.5"。这是托管在多层代理之后的应用程序用来准确记录和追踪原始客户端 IP 的关键机制。它尤其用于负载均衡场景以保持请求追踪完整。
配置示例
location /api {
proxy_pass http://backend;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}子系统
http可缓存
是上下文
http, server, location, if⚠
如果您未正确设置 X-Forwarded-For 头,您的应用可能无法接收到正确的客户端 IP 地址。
⚠
确保 NGINX 的代理行为已正确配置,以有效利用该变量。
⚠
如果不信任来自客户端的传入请求头,请注意可能的 IP 欺骗。