nginx和tomcat集群后,tomcat如何获得访问者ip

nginx代理了tomcat后,tomcat通过getRemoteAddr获取到的ip就变成本机了。

location ~*.(jsp|do|action)$
        {
          index index.jsp;
          proxy_pass http://localhost:8080;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
        }


public String getIpAddr(HttpServletRequest request) {
		           String ip = request.getHeader("x-forwarded-for");
		           if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
		               ip = request.getHeader("Proxy-Client-IP");
		           }
		           if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
		               ip = request.getHeader("WL-Proxy-Client-IP");
		           }
		           if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
		              ip = request.getRemoteAddr();
		          }
		          return ip;
		      }


未使用的参考链接:http://gong1208.iteye.com/blog/1559835

你可能感兴趣的:(tomcat集群)