zoukankan      html  css  js  c++  java
  • 通过nginx代理之后,获取客户端ip

    1.相关nginx配置(通过header将客户端ip,host等信息传入)

    
        location ~ .*.do$
        {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $host;
            proxy_pass_header Set-Cookie;
            proxy_pass_header P3P;
            proxy_pass http://127.0.0.1:8090;
        }        
    
    

    2.获取ip, 主要通过分析request中的header信息

    
        public static String getClientIP(HttpServletRequest request) {
            String ip = request.getHeader("X-Real-IP");
            if (isBlank(ip) || isIPUnknown(ip)) {
                ip = request.getHeader("X-Forwarded-For");
            }
            if (isBlank(ip) || isIPUnknown(ip)) {
                ip = request.getHeader("Proxy-Client-IP");
            }
            if (isBlank(ip) || isIPUnknown(ip)) {
                ip = request.getHeader("WL-Proxy-Client-IP"); //WebLogic
            }
            if (isBlank(ip) || isIPUnknown(ip)) {
                ip = request.getRemoteAddr();
            }
            return ip;
        }
    
        private static boolean isIPUnknown(String ip) {
            return "unknown".equalsIgnoreCase(ip);
        }
    
        public static boolean isBlank(String s) {
            return s == null || s.trim().length() == 0;
        }
    
    
  • 相关阅读:
    第十周进度条
    冲刺阶段第十天
    冲刺阶段第九天
    冲刺阶段第八天
    冲刺阶段第七天
    冲刺阶段第六天
    第一次冲刺阶段(十一)
    第一次冲刺阶段(十)
    第一次冲刺阶段(九)
    第一次冲刺阶段(八)
  • 原文地址:https://www.cnblogs.com/javaDeveloper/p/5124994.html
Copyright © 2011-2022 走看看