linux

nginx日志中的X-Forwarded-For有何用

小樊
44
2025-10-23 18:10:17
栏目: 编程语言

X-Forwarded-For 是一个 HTTP 头部字段,用于记录通过 HTTP 代理或负载均衡器连接到 Web 服务器的客户端的原始 IP 地址。在 Nginx 日志中,X-Forwarded-For 可以帮助您识别和跟踪访问您网站的真实用户,而不是仅仅看到代理服务器或负载均衡器的 IP 地址。

当请求经过多个代理时,X-Forwarded-For 的值会包含一个 IP 地址列表,每个 IP 地址代表一个跳转。通常,第一个 IP 地址是客户端的真实 IP 地址,后续的 IP 地址则是代理服务器的 IP 地址。例如:

X-Forwarded-For: 192.168.1.1, 10.0.0.1, 172.16.0.1

在这个例子中,192.168.1.1 是客户端的真实 IP 地址,而 10.0.0.1172.16.0.1 分别是两个代理服务器的 IP 地址。

要在 Nginx 中使用 X-Forwarded-For,您需要在配置文件中设置 proxy_set_header 指令,以便将客户端的真实 IP 地址传递给后端服务器。例如:

location / {
    proxy_pass http://backend;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

这样,Nginx 会将客户端的真实 IP 地址添加到 X-Forwarded-For 头部字段中,并将其传递给后端服务器。在后端服务器的日志中,您可以查看 X-Forwarded-For 字段以获取客户端的真实 IP 地址。

0
看了该问题的人还看了