X-Forwarded-For 是一个常用的自定义请求头,用于传递客户端真实的 IP 地址链给后端服务器。
当使用反向代理时,如果不做特殊处理,默认情况下后端服务器只能获取到反向代理服务器的 IP 地址而无法得知真实客户端的 IP 地址。为了解决这个问题,可以通过设置 X-Forwarded-For 请求头将客户端和中间代理服务器的 IP 地址链传递给后端服务器。
示例用法:
location /api {
proxy_pass http://backend_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
上述配置表示在转发请求给 backend_server 的同时,将客户端和中间代理服务器的 IP 地址链作为 X-Forwarded-For 请求头发送给后端服务器。通过 $proxy_add_x_forwarded_for 变量可以自动追加当前代理服务器的 IP 地址。
在后端服务器中可以通过读取该请求头来获取客户端和中间代理服务器的 IP 地址链,并进行相应处理。例如,在 Nginx 中可以使用 $http_x_forwarded_for 变量来获取该值。
注意:需要确保反向代理服务器已经正确地接收到了客户端和中间代理服务器的 IP 地址链才能进行传递。具体可根据实际情况进行配置和调试。
内容由零声教学AI助手提供,问题来源于学员提问




