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段

最新文章

  1. CSS备忘录
  2. Daily Build
  3. ural 1143. Electric Path
  4. eclipse闪退
  5. Vijos1889 天真的因数分解
  6. Redis学习手册(Sorted-Sets数据类型)
  7. 十天学会单片机Day5 IIC总线AT2402芯片(EEPROM)应用
  8. 修改UI中的值,无反应解决办法
  9. MyBatis(3.2.3) - Passing multiple input parameters
  10. Android完全退出应用程序,完美解决方案
  11. maya 写UI 用到的工具
  12. CUGBACM_Summer_Tranning 组队赛解题报告
  13. STM8S 串口应用 UART2 STM8S105
  14. Erlang运行时的错误
  15. HTTP请求返回状态详解
  16. Java学习笔记三---unable to launch
  17. 小程序解析html之富文本插件wxParse
  18. Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnection
  19. Python开发——数据结构【深浅拷贝】
  20. day--16页面布局

热门文章

  1. 基于Spring框架的简单多数据源切换解决办法
  2. 设置Tomcat编码(UTF-8)
  3. 大数据(8) - hive的安装与使用
  4. easyui.dialog.js
  5. find命令结合cp bash mv 命令使用的4种方式
  6. html 调用ActiveX
  7. Data Collection
  8. 【c语言】将正数变成相应的负数,将负数变成相应的正数
  9. cinder服务端的keystone认证机制
  10. 上下居中css