项目采用前后端分离后,中间用Nginx进行请求转发,但是如此以来,后台应用获取到的客户端IP地址就总是127.0.0.1(Nginx和后台应用在同一台机器,获取到的总是Nginx的转发的请求IP)。其实想要获取真实的客户端请求IP也很简单,修改Nginx配置即可,如下:
#/report为处理的请求前缀,根据实际情况填写
location /report/ {
#......
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr; # 存放用户的真实ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 每经过一个反向代理,就会把反向代理IP存放在X-Forwarded-For里
#......
}
设置好后,重启Nginx即可。