nginx反向代理时,X-Forwarded-For 如何设置


当nginx作为反向代理功能时,转发请求到后端服务器

通常需要使用如下命令为转发的请求增加请求头 X-Forwarded-For 


proxy_set_header X-Forwarded-For "特定的X-Forwarded-For值"


第一版配置:

proxy_set_header X-Forwarded-For $remote_addr;

#如上配置只能增加负载均衡ip地址,丢失了客户端真实ip和任意中间代理ip


第二版配置

proxy_set_header X-Forwarded-For "$http_x_forwarded_for, $remote_addr";

#如上配置在原有请求头X-Forwarded-For字段的基础上增加了连接nginx的服务器ip地址


第三版配置(最为简单)

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#$proxy_add_x_forwarded_for已经实现了第二版的功能,直接使用该内置变量即可




具体地址参见:这里


如果要获取用户端的真实IP,应该从请求头中的 X-Forwarded-For字段中取第一个英文逗号前的ip地址。


第三个配置最为简单,实用

你可能感兴趣的:(nginx)