`
hngmduyi
  • 浏览: 329803 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nginx多次转发后获取客户请求IP

阅读更多
/**
	 * 
	 * @Description:获取客户端请求IP地址,解决使用nginx请求转发后不能获取问题
	 * @param @param request
	 * @param @return
	 * @return String
	 * @throws
	 */
	public String getIpAddr(HttpServletRequest request){
		String ip=request.getHeader("X-Forwarded-For");
    	String localIP = "127.0.0.1";
	    if((ip == null)||(ip.length() == 0)||(ip.equalsIgnoreCase(localIP))||"unknown".equalsIgnoreCase(ip)){
	        ip = request.getHeader("Proxy-Client-IP");
		}
	    if((ip == null)||(ip.length() == 0)||(ip.equalsIgnoreCase(localIP))||"unknown".equalsIgnoreCase(ip)){
	        ip = request.getHeader("WL-Proxy-Client-IP");
		}
	    if((ip == null)||(ip.length() == 0)||(ip.equalsIgnoreCase(localIP))||"unknown".equalsIgnoreCase(ip)){
	        ip = request.getRemoteAddr();
		}
	    if(ip!=null && ip.length()>15){
	         if(ip.indexOf(",")>0){
	             ip = ip.substring(0,ip.indexOf(","));
	         }
	     }
	    return ip;
	}

 

分享到:
评论

相关推荐

    nginx经过多层代理后获取真实来源ip过程详解

    问题 nginx取 $remote_addr 当做真实ip,而事实上,$http_X_Forwarded_For 才是用户真实ip,$remote_addr只是代理上一层的地址 ...nginx: [emerg] unknown directive set_real_ip_from in /home/lnidmp/nginx/conf/

    nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip

    服务器下发的cookie,在客户端下一次请求时才能生效。 (f)Nginx sticky模块不能与ip_hash同时使用 sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure]...

    Nginx利用Lua+Redis实现动态封禁IP的方法

    本文给大家介绍的是Nginx利用Lua+Redis实现动态封禁IP的方法,下面话不多说了,来一起看看详细的介绍吧 二、架构 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2...

    Nginx负载均衡特点

    6、Nginx对请求的异步处理可以帮助节点服务器减轻负载; 7、Nginx能支持http和Email,这样就在适用范围上面小很多; 8、不支持Session的保持、对Big request header的支持不是很好, 另外默认的只有Round-robin...

    nginx(1-9-8).syno.tar官方镜像

    在其中CMD,以使nginx保持在前台,以便Docker可以正确跟踪进程(否则您的容器将在启动后立即停止)! 然后使用构建图像docker build -t custom-nginx .并按如下所示运行它: $ docker run --name my-custom-...

    运维-Nginx代理服务器-方向代理-负载均衡-数据缓存

    我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。...

    Nginx安装包

    再补充个上次漏掉的,这时我们可以关闭其中一个服务器,我关了tomcat1,再多次刷新页面,会发现接下来出现的都是tomcat2的页面,这时必然的,但是时而快时而慢。这其中原因是当nginx将请求转发到tomcat2时,服务器...

    nlb负载均衡架设教程

    然后我们查看长ping的客户机,发现之断了一次,又正常通讯了 我们链接server02的网卡,断开server03的网卡 再次查看长ping的客户机,发现依然可以正常通讯 这说明,我们的网络负载平衡是正常的,只有在网络...

    haproxy-2.0.5_for_windows.rar

         ④source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,我们用其作为解决session问题的一种方法;      ⑤ri,表示根据请求的URI;      ⑥rl_param,表示根据请求的URl参数'balance url_...

    php curl中gzip的压缩性能测试实例分析

    请求接口次数很多,每日两亿多次,主要是有些接口返回数据量很大高达110KB(为了减少请求次数,将多个接口合并成一个导致的)。 后端接口的nginx已经开启gzip,所以做个测试,看看是否在请求时使用压缩解压 ...

    毕业设计电商网站源码-flask-blog:《FlaskWeb开发》的个人部署版本,包含学习笔记

    刚开始不明白这个nginx有什么用,看了上面的链接的部署过程大概明白了,将外部的请求转发到内部的gunicorn服务器,称为反向代理(Apache类似),一图说明一切: 准备工作 域名:狗爹上面购买: ,有点小贵,然后设置...

    python入门到高级全栈工程师培训 第3期 附课件代码

    本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和数据链路层 08 网络层和arp协议 09 传输层和应用...

    理解web服务器和数据库的负载均衡以及反向代理

    但是若该网站平均每秒的请求是200多次,那么问题就来了:这已经是最好的web服务器了,我该怎么办?同样的情景也适用于数据库。要解决这种问题,就需要了解“负载均衡”的原理了。 web服务器如何做负载均衡 为web...

    基于字符级卷积神经的中文情感分析算法源码+项目说明.zip

    使用ip:8000/predict是post的地址,使用python C-CNN-SA-client.py即可模拟请求,注意模型第一次初始化的时间因为需要加载预训练模型,推理速度有些慢,目前单机单线曾运行的正常推理速度在100ms之内,多进程部署会...

    KODExplorer 芒果云-资源管理器

    - 全平台兼容性:Win Linux Mac (Apache、Nginx、IIS) #### 2.使用场景: - 取代FTP,服务端、客户端软件等复杂的安装配置。kod可以一键安装随处使用. - 你可以用它来管理你的服务器(备份,在线解压缩,版本发布......

    校园小情书小程序表白墙后端-PHP

    云主机需要防火墙放开8000和8080端口才能访问,本地直接在浏览器打开访问即可,如果你想通过域名访问,需要在宿主机器上部署nginx来转发请求到127.0.0.1:8000和127.0.0.1:8080去访问项目和phpmyadmin4、停止项目,...

    leadshop开源商城-PHP

    采用JSON API 标准,用以定义客户端如何获取与修改资源,以及服务器如何响应对应请求。高效实现的同时,无需牺牲可读性、灵活性和可发现性。 认证方式 目前所有的接口使用 Oauth2 Password 方式,也就是 JWT ...

Global site tag (gtag.js) - Google Analytics