当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