服务器上运行nginx 转发请求到 tomcat 8080 的jsp
获取到的信息
request.getHeader("x-real-ip");= 58.x.x.x
request.getHeader("x-forwarded-for");=10.15.x.x, 58.x.x.x
request.getHeader("Proxy-Client-IP");=null
request.getHeader("WL-Proxy-Client-IP");=null
request.getRemoteAddr();=202.x.x.x
直接访问 tomcat 8080 的jsp
request.getHeader("x-real-ip");= null
request.getHeader("x-forwarded-for");=10.15.x.x
request.getHeader("Proxy-Client-IP");=null
request.getHeader("WL-Proxy-Client-IP");=null
request.getRemoteAddr();=58.x.x.x
客户端浏览器是有用代理的 58.x.x.x 是代理的公网IP。10.15.x.x 是客户端的局域网IP。 202.x.x.x 是tomcat服务器的IP
因此如果想获取远程用户上网的IP,只要获取 x-real-ip 如果 x-real-ip 为空,直接获取 request.getRemoteAddr();