解决nginx中不能获取真实ip的可能

存在题目中的问题时,我们可能有这几种情况:

1、使用了CDN服务;

2、使用了反向代理服务

目前在主流的网站部署下,很多的网站都使用了CDN这一技术,以解决某种情况下的性能压力或安全等方面的可能,那么使用了CDN后,可想而知,多了一次路径。CDN的路径会干扰到你物理服务器在获取用户数据,其中最为明显的就是用户的浏览器标识和用户的真实IP,在未使用CDN前,我们一般通过remote_addr来直接获取,但是使用了CDN后,我们需要换种思路了。

其实CDN厂商已经帮我们考虑好了,我们只要改remote_addr为$proxy_add_x_forwarded_for即可,为什么?因为CDN厂商帮我们中转了一下用户的信息。

好了,再谈第二个,使用了反向代理,这也是主流部署下的一种技术方案,简单地理解就是负载均衡。这种情况下,导致无法获取直接信息的可能,是部署人员自己的问题,为何这么说?

在nginx配置中的location节点中加入以下内容:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

你会发现问题都已经解决了,好了,伊凡门户就祝你好运了~

相关推荐:
很多朋友在问我,为何网上说路由器容易被骇客入侵进行非法活动,但是我家路由是设置了密码的,而且管理页面是指定MAC地址的电脑才能访问的,也改了默认的192.168段,可安全? 我纠结了一下,还是笑了...为 …
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。 IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整 …
NAT可以方便的完成这种流量穿通功能,即把外网数据通过NAT(中转设备)来穿透进内网,内网数据通过NAT(中转设备)穿透出外网。 那linux下iptables如何实现nat转发?这里将以Debian7主机下的测试为例。 1、开启 …
在通常情况下,macOS是非常稳定的,但是它偶尔也会发点小脾气,出现应用程序没有响应的情况。如果你正在运行的应用程序失去响应,强制退出一般都能解决,但是偶尔也会出现整个系统都失去响应,鼠标不能用, …
创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个 …
手机扫一扫即可带走我!