我在获取用户ip时,用了多种方法,得到ip地址始终是127.0.0.1,百思不得其解,为什么别人用这些方法都可以获得用户真实ip,我怎么就不行,难倒是人品的问题。后来仔细一想,估计是因为我们使用了nginx代理服务器的缘故,上网一搜,果然也有人遇到这种情况,解决方法如下:
在nginx中设置:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
后端程序可以从Server变量HTTP_X_REAL_IP和HTTP_X_FORWARDED_FOR中获取用户的ip地址。