当前位置:首页 > 日记 > 正文

nginx负载CDN加速的真实IP

nginx负载CDN加速的真实IP
点评:当nginx负载没有CDN获得真正的IP,nginx的配置如下:

nginx负载CDN加速的真实IP
当nginx负载没有CDN获得真正的IP,nginx的配置如下:
java代码
美元proxy_set_header主机主机;
proxy_set_header x-real-ip remote_addr美元;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;
然后后端服务器获取IP代码:
java代码

复制代码代码如下所示:
字符串地址= request.getheader(X-Forwarded-For );
如果(地址)!= null address.length()> 0
未知的。EqualsIgnoreCase(地址)){
返回地址;
}
地址= request.getheader(代理ip);
如果(地址)!= null address.length()> 0
未知的。EqualsIgnoreCase(地址)){
返回地址;
}
地址= request.getheader(WL代理客户端IP);
如果(地址)!= null address.length()> 0
未知的。EqualsIgnoreCase(地址)){
返回地址;
}
返回request.getremoteaddr();

通过这种方式,您可以获得真正的IP,服务器将测试它:
而CDN,获取IP:123.116.126.51(我目前的客户机的真实IP)
然后加入CDN,然后去IP:123.116.126.51,202.108.251.166(主机点CDN的IP)。
也就是说:客户端真正的IP,代理IP,谷歌,
X-Forwarded-For:被称为xff头。它表示客户端,即HTTP请求端的真正IP。只有在使用HTTP代理或负载平衡服务器时才添加它。
标准格式如下:
X-Forwarded-For:客户,proxy1,proxy2
从标准的格式,我们可以看到,X-Forwarded-For头信息可以有多个,中间用逗号隔开,第一个是客户端真实IP,其余的IP地址已被代理或负载平衡通过,和几个会出现在几个。
当nginx设置X-Forwarded-For等于proxy_add_x_forwarded_for美元,有两例
1、如果请求不设置从CDN X-Forwarded-For头(通常这种事情不会发生),和我们的nginx的设置设置为proxy_add_x_forwarded_for,X-Forwarded-For信息应该是CDN的IP,因为相对于Nginx的负载平衡,说客户的CDN,在这种情况下,后端网络生活时可以得到用户真实IP。
2、CDN X-Forwarded-For设置,我们也都在这里建立一次,和proxy_add_x_forwarded_for美元的价值,那么X-Forwarded-For内容IP CDN ip客户端,如果是这种情况,后台进程通过X-Forwarded-For获取IP的客户端,以逗号分隔的第一。
这是个头痛的问题。如果您只想获得客户机真正的IP,那么我们只能修改后端代码。如果有很多,那就拿第一个,这不是我想要的,
那么我们怎样才能在不修改它的情况下制造出真正的IP呢
也有在Nginx http_x_forwarded_for美元的变量,并将其存储在X-Forwarded-For信息的请求。如果X-Forwarded-For信息程序兼容性在后端不好(不考虑X-Forwarded-For包含多个IP的情况),最好不要设置X-Forwarded-For proxy_add_x_forwarded_for.should美元将http_x_forwarded_for美元或者不成立!
这意味着我们不加proxy_add_x_forwarded_for美元,但并非如此,CDN的情况下将继续获得任何真正的IP,这是一个双赢的办法
在多个配置之后,找到以下配置:
java代码
proxy_set_header X-Forwarded-For http_x_forwarded_for美元;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;
这种配置需要得到http_x_forwarded_for美元第一次,如果它不存在,然后proxy_add_x_forwarded_for美元。
这允许您获得客户机IP,而不管它是否在CDN环境中。
(注:未经测试的多层代理)

相关文章

快速统计局域网多机硬件配置信息(技

快速统计局域网多机硬件配置信息(技

配置信息,硬件,局域网,统计,多机,问题: 公司领导让我们的信息中心计算所有的计算机硬件配置,但是公司里有很多计算机,领导们在急切地催促。有没有什么方法可以快速地计算局域网中所有的计算机硬件信息 答案uff1a 这个问题需要解决software.3…

微软的无奈:用户仍不愿让WindowsXP

微软的无奈:用户仍不愿让WindowsXP

用户,微软的,不愿,无奈,电脑软件,点评:Windows XP庞大的用户群决定了它很难改变。 微软打算在明年4月8日终止对Windows XP的支持,从而减少了Windows XP的市场份额占到13%,但现在很难实现这一目标。通过研究公司Net Applications公布的数据显示…

对kbdtray.exe-kbdtray的作用是什

对kbdtray.exe-kbdtray的作用是什

作用,电脑软件,kbdtray,exe,评论:详细的介绍了kbdtray.exe - kbdtray过程 进程文件:kbdtray或kbdtray.exe 进程名称:罗技iTouch: 过程类别:安全风险的过程 英文描述: kbdtray.exe是罗技iTouch键盘:过程。它提供了键盘,它也被称为以下三个方面。 …

七种MySQL表的详细介绍

七种MySQL表的详细介绍

详细介绍,七种,电脑软件,MySQL,要学习mysql数据库和mysql表类型,我们需要了解它们。这里有七个MySQL表类型供您使用。我希望它能帮助您学习MySQL表类型。 MySQL作为最流行的免费数据库服务引擎,已经流行了很长时间,但可能有些人对MySQL的内部…

oracle下带支票选项的使用

oracle下带支票选项的使用

选项,支票,电脑软件,oracle,如果视图定义包含条件(如WHERE子句),其目的是确保任何INSERT或UPDATE语句的WHERE子句引用视图应用,我们必须使用with check option定义视图。此选项可确保正在数据库中更改数据的完整性。如果一个条件被插入或更新操…

同时满足多个条件的场

同时满足多个条件的场

条件,多个,电脑软件,所以需要一些特殊的治疗。 复制代码代码如下所示: SELECT * FROM news_extinfo 哪里 (extid = 1和期权价值= 0) 或(extid = 2和期权价值= 0) 或(extid = 3和期权价值= 0) 集团通过NewSID 有计数(*)=3 这里的计数(*)=3的意思是 在查…

php上传文件类型判断功能(避免上传

php上传文件类型判断功能(避免上传

上传,文件类型,漏洞,功能,电脑软件,复制代码代码如下所示: 功能(file_name美元,美元pass_type =阵列('jpg ','jpeg ','gif ','bmp ','png ')){ yx_file = pass_type美元美元; 铠之麦= substr(strrchr美元(美元file_name,,),1); is_img美元= in_array…

连接SQLServer2000的PHP5.3版本的

连接SQLServer2000的PHP5.3版本的

方法,连接,版本,电脑软件,最近在一个系统内捕捉显示在网页的管家数据库数据的几个表,然后发现互联网如何PHP连接SQLServer2000数据库,很多网上教学材料配置的配置文件,删除分号;扩展= php_mssql.dll;然后,EXT文件里面的php_mssql.dll复制和粘贴到…

隐藏和Word2007文本格式标记的显示

隐藏和Word2007文本格式标记的显示

文本,设置,显示,标记,格式,隐藏或显示文本格式标记在Word2007的方式不同,以前的Office版本,让我们仔细看看它。 显示或隐藏格式标记 在启动选项卡上;段;在组中,单击显示/隐藏; 按钮不关闭所有格式标记 如果您选择始终显示特定的标记(如段落标记…

前哨是什么outpost.exe-使用

前哨是什么outpost.exe-使用

前哨,电脑软件,outpost,exe,评论:详细的介绍了outpost.exe -前哨过程 进程文件:前哨或outpost.exe 过程名称:前哨个人防火墙 过程类别:安全风险的过程 英文描述: outpost.exe是前哨个人防火墙的应用,个人主要的可执行文件,它也被称为以下三个方…

是drivespeed.exe对行驶速度过程的

是drivespeed.exe对行驶速度过程的

风险分析,过程,速度,电脑软件,drivespeed,点评:drivespeed.exe是领先尼禄CD软件相关工具的CD驱动器速度测试 进程文件:行驶速度或drivespeed.exe 过程名称:Nero Toolkit 过程类别:安全风险的过程 英文描述: drivespeed.exe是工具是安装在前面…

为您和我整理和收集Oracle通用命令

为您和我整理和收集Oracle通用命令

命令,通用,和我,为您,电脑软件,原因 这个错误发生在org.hibernate.querytimeoutexception:Hibernate批量插入了 造成这种错误的原因是表空间容量不足,需要增加空间容量。那么首先要考虑的是,我们要质疑它的容量,所以我们要设法找到它的容量,增…