Nginx如何在使用类似CloudFlare的CDN加速服务后还能正常获取客户端的真实IP地址
2017-9-6
| 2023-9-1
0  |  0 分钟
页面类型
发布状态
发布日期
文章地址
内容摘要
文章标签
文章分类
icon代码
密码
Linux 运营干货,关于如何在使用 Content Delivery Network (CDN) 内容分发网络后服务器既后端能正常获取客户端的真实IP。本篇文章以CloudFlare为例子实例讲解获取前端客户端真实IP的方法,万事开头难相信你会了这一招应该会举一反三吧!

0x01 前提条件

PS:像我就只能用得起这些免费的CDN服务了,所以我也就举了两个免费的“荔枝”

0x02 获取节点IP

在开始前需要取得CDN服务商的节点IP,这个CDN服务商都会提供。
例如 CloudFlare 的节点地址 https://www.cloudflare.com/ips/

0x03 配置 Nginx

编辑 Nginx 主配置文件 nginx.conf 添加代码,里面的注释不要更改,后面自动更新地址列表会用到
这里的 CF-Connecting-IP (CloudFlare额外提供) 是根据 CDN 服务商提供的返回IP地址的请求头而决定的,正常选择第二段即可,具体需要看 CDN 服务商的文档。
关于 CF-Connecting-IP 在这里有说明 https://support.cloudflare.com/hc/en-us/articles/200170986
经过这样的简单配置,后端NGINX应该就可以正常获取IP地址了,但是 CDN 服务商增加或者更换节点节点地址都是会变动的怎么办呢?别急往下看

0x04 自动获取节点列表

上面说过每个 CDN 服务商都会在某个页面提供节点地址,例如 CloudFlare v4 节点地址 CloudFlare V6 节点地址 CloudFlare比较实在提供了纯文本版的节点列表,如果不是纯节点地址网页就要写正则匹配了。好了条件都有了,我们来写个脚本定时GET页面并抓到节点列表自动写到 Nginx 的配置文件上。
后端运维
  • 建站
  • Nginx
  • 一个合格的服务器自动备份案例,闭环备份机制出错邮件报警树莓派海文SeaFile配置Nginx前端反代并启用HTTPS全攻略
    目录