X-Forwarded-For 是一个 HTTP 头部字段,用于记录通过 HTTP 代理或负载均衡器连接到 Web 服务器的客户端的原始 IP 地址。当请求经过多个代理时,X-Forwarded-For 的值会包含一个 IP 地址列表,每个 IP 地址代表一个跳点。
在 Nginx 中,你可以使用 $http_x_forwarded_for 变量来访问这个字段的值。以下是一些使用 X-Forwarded-For 的示例:
- 将客户端的原始 IP 地址记录到访问日志中:
http {
log_format custom '$http_x_forwarded_for - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log custom;
}
在这个例子中,我们创建了一个自定义的日志格式,其中包含了 $http_x_forwarded_for 变量。这样,访问日志中将记录客户端的原始 IP 地址,而不是经过代理的 IP 地址。
- 将客户端的原始 IP 地址传递给后端服务器:
location / {
proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_pass http://backend;
}
在这个例子中,我们使用 proxy_set_header 指令将 $http_x_forwarded_for 变量的值设置为 X-Real-IP 请求头。这样,后端服务器就可以通过检查 X-Real-IP 请求头来获取客户端的原始 IP 地址。
注意:在使用 X-Forwarded-For 时,要确保信任的代理服务器正确设置此字段。否则,恶意用户可能会伪造 IP 地址。为了防止这种情况,你可以使用 X-Forwarded-Proto 和 X-Forwarded-Host 等其他字段来验证请求的来源。
以上就是关于“nginx日志里的X-Forwarded-For怎么用”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm