当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地址。

 

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

 

via.http://blog.csdn.net/hellolingyun/article/details/34093223