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;
    }

相关文章:

  • 2021-07-15
  • 2021-08-02
  • 2021-06-19
  • 2022-12-23
  • 2023-03-19
  • 2022-12-23
  • 2021-10-23
猜你喜欢
  • 2021-07-29
  • 2022-12-23
  • 2021-12-15
  • 2021-09-16
  • 2021-11-28
  • 2021-07-25
  • 2022-12-23
相关资源
相似解决方案