BS服务中,客户访问服务器主要分为两种:nginx访问,服务器ip直接访问
1:服务器IP:server_port直接访问时,获取IP:
获取对象为HttpServletRequest request;
String forIp =request.getHeader("X-Forwarded-For");
// 若有值时,第一个ip为真实用户IP
if(Stringutils.isNotBlank(userIp)){
String userIp = forIp.split(",")[0];
}
2:通过nginx代理访问:需要在nginx上加一个请求头: demo:
location / {
proxy_pass http:111.111.111.111:8888/; //服务运行ip:port
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real_IP $remote_addr;
}
}
加完以上黑体部分,
String userIp = request.getHeader("X-Real_IP");
以上,可以获取用户IP