nginx代理后java获取真实ip解决办法
来源:互联网 发布:中易广告联盟v9源码 编辑:程序博客网 时间:2024/06/02 02:21
nginx代理的时候,tomcat获取的客户端不是客户端传过来的ip,出现这种情况的原因很明显,
nginx作为代理服务器先拦截客户端发来的请求,
它再以localhost的身份转发给tomcat去处理。
解决办法在nginx配置中的location节点中加入以下:
JAVA端可用以下方法获取用户真实IP
public String getRemoteHost(HttpServletRequest request) {String ip = request.getHeader("X-Forwarded-For");log.info("getIpAddress(HttpServletRequest) - X-Forwarded-For - String ip="+ ip);if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {if (ip == null || ip.length() == 0|| "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");log.info("getIpAddress(HttpServletRequest) - Proxy-Client-IP - String ip="+ ip);}if (ip == null || ip.length() == 0|| "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");log.info("getIpAddress(HttpServletRequest) - WL-Proxy-Client-IP - String ip="+ ip);}if (ip == null || ip.length() == 0|| "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");log.info("getIpAddress(HttpServletRequest) - HTTP_CLIENT_IP - String ip="+ ip);}if (ip == null || ip.length() == 0|| "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");log.info("getIpAddress(HttpServletRequest) - HTTP_X_FORWARDED_FOR - String ip="+ ip);}if (ip == null || ip.length() == 0|| "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();log.info("getIpAddress(HttpServletRequest) - getRemoteAddr - String ip="+ ip);}} else if (ip.length() > 15) {String[] ips = ip.split(",");for (int index = 0; index < ips.length; index++) {String strIp = (String) ips[index];if (!("unknown".equalsIgnoreCase(strIp))) {ip = strIp;break;}}}return ip;}
0 0
- nginx代理后java获取真实ip解决办法
- 获取使用nginx代理后的真实IP地址
- 配置Nginx方向代理后,php获取客户端真实IP
- nginx反向代理后应用程序如何获取客户端真实IP?
- nginx代理后如何获取request的真实ip
- lighttpd获取nginx代理客户端真实IP
- nginx反向代理,node获取真实IP
- Nginx反向代理获取客户端真实IP
- Nginx反向代理获取客户端真实IP
- Nginx反向代理获取客户端真实IP
- nginx+tomcat整合后获取真实IP
- nginx 反向代理使tomcat日志中无法获取真实IP-解决办法
- nginx反向代理后获取不到客户端的真实ip地址
- java 获取代理的真实ip
- nginx代理tomcat后,tomcat获取真实(非proxy,非别名)nginx服务端ip端口的解决方案
- nginx 获取真实IP
- nginx代理后,获取request的ip
- nginx代理后获取用户ip
- Leetcode:72 Best Time to Buy and Sell Stock
- 提交.a文件到svn
- 闪光点
- 使用morphia实现对mongodb的复杂group查询
- kmalloc使用相关
- nginx代理后java获取真实ip解决办法
- Android 蓝牙4.0 BLE 理解
- oracle dblink 创建
- PHP的单引号和双引号
- 测试图片
- iOS-关于单例类的使用,以及使用单例进行传值
- 面试---阿拉伯数字金额转汉字
- Eclipse项目转Idea项目
- 关于tfs已经在文件中映射问题