nginx1.18.0与tomcat组合使用时获取真实IP
nginx版本:1.18.0
tomcat版本:9
增加配置:nginx1.18.0/conf/nginx.conf
在http模块下加入
(很多文章在location,我这个版本必须在http!!!)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
JAVA获取真实IP:
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
int index = ip.indexOf(",");
return index != -1 ? ip.substring(0, index) : ip;
} else {
ip = request.getHeader("X-Real-IP");
return StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip) ? ip : request.getRemoteAddr();
}
}