通过nginx作为代理访问应用,后端应用要获取请求客户端的真实IP需要添加头部信息:
语法:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
作用域:http, server, location
配置说明: 可以配置在 http,server,location 作用域,配置不同域中作用范围不同,请根据需求配置
示例配置在location中:
server {
listen 80;
server_name www.xxx.com;
location /
{
proxy_pass http://ip:端口;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
获取真实ip说明:
1、X-Real-IP可能不是用户的真实IP,如果存在代理则为上一级代理ip
2、proxy_add_x_forwarded_for 获取到结果例如:(114.114.114.114, 10.10.10.10),第一个是用户的真实IP,第二个是一级代理的IP,依此类推。