CDN 环境下获取用户IP方法

摘要:
在cdn环境中获取用户IP方法1 cdn自定义标头的X-Real-IP,并在后端使用$http _ X_Real_ IP gets proxy_set_headerX Real IP$remote_ addr方法简单、有效且准确。2cdn通常使用自定义字段X-Forwarded-For来记录代理进程信息。例如,假设$http被添加到所有代理,包括cdn代理x_forwarded_For:192.168.2

CDN 环境下获取用户IP方法


  1. 1 cdn 自定义header头的X-Real-IP,在后端使用$http_x_real_ip获得

    proxy_set_header X-Real-IP $remote_addr

    这种方法简单有效准确.

  2. 2 cdn一般都会使用自定义字段X-Forwarded-For记录代理过程信息

    例如: 假设加上cdn代理在内的所有代理后的$http_x_forwarded_for为:

    192.168.247.1, 192.168.247.131, 192.168.247.132,192.168.96.111

    我们可以拿到第一个IP即可(这里不考虑IP伪造的情况)

  3. 3 使用nginx自带模块realip获取用户IP地址

    如果nginx是通过源码包安装的,在编译时需要加上

    --with-http_realip_module

    在最后一台代理服务器(nginx)做如下设置:

    real_ip_header "X-Forwarded-For";设定获取ip地址串的字段

    real_ip_recursive on;递归check地址串

    set_real_ip_from 192.168.247.131;在check地址串的过程中pass掉它

    set_real_ip_from 192.168.247.132;在check地址串的过程中pass掉它

    set_real_ip_from 192.168.96.111;在check地址串的过程中pass掉它

    这个例子中只有192.168.247.1没有在set_real_ip_from中那我们就默认它是用户IP

    缺点:ip地址有可能被伪装,而且需要知道所有CDN(代理)节点的ip地址或者ip段

免责声明:文章转载自《CDN 环境下获取用户IP方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring boot -- 控制器类中方法返回对象json序列化android即时消息处理机制下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

GIS中的数据库.gdb与.mdb的区别

Gdb是文件地理数据库,mdb是个人地理数据库,两者都是数据库文件类型。个人地理数据库是基于access数据库的个人数据库格式mdb,可存储不超过2G的文件,仅适用于Windows系统;文件数据库是保存在文件系统文件夹中的各种类型的GIS数据集的集合。请参阅文章“GIS中database.gdb和.mdb之间的区别是什么?”,m892832piczpec5。...

【原生】CocosCreator Android和游戏的通讯 (Java和TS互相调用、传递JSON数据、监听返回键)

Cocos版本:2.4.4参考:Cocos文档-Java原生反射机制Cocos文档-JSB使用指南-在Cocos中调用Android方法2在Android中调用Cocos方法3传输JSON数据4倾听返回键5 Cocos和Android相互调用时遇到的问题,TypeScript方法可以在Java中调用,Java方法可以在TypeScript中调用。在Cocos...

自定义样式滚动条

自定义IE浏览器滚动条样式追溯浏览器对滚动条的自定义,恐怕最早的就是IE浏览器了。感觉IE浏览器滚动条自定制功能并不是很强,只能控制一样显示各个部分的颜色而已,像宽度,结构等都无法控制,要靠出个性点的滚动条,很难!自定义FireFox浏览器滚动条在网上找了很多关于Firfox自定义浏览器滚动条的方法,发现firefox中却实是不支持的。...

ORACLE无法删除当前连接用户

今天在做Oracle数据库是遇到ORACLE无法删除当前连接用户,经查找可用如下方法解决。SQL˃dropuseracascade;//删除用户以及用户表空间下所有对象用户已丢弃。...

一些替代Xshell的软件推荐

TransmitTransmit是一个30美元价格的共享软件,它覆盖了几乎所有的常用功能,包括远程文件编辑和文件夹同步,尽管其有30美元的价格,很多Windows用户也希望Transmit能出一个Win版的。FireFTPFireFTP是一个Firefox扩展,能直接集成一个强大的FTP客户端到我们最喜爱的浏览器Firefox上。CyberduckCyber...

C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

接下来,我们将介绍websocket组件websocket sharp的相关内容。Websocket sharp是一个单组件dllWebsocket sharp是用MonoDevelop开发的。因此,建立它的一个简单方法是打开websocket sharp Sln,并使用MonoDevelop中的任何构建配置来运行websocket sharp项目的构建。W...