网站用了cloudflare之后,日志显示的ip变成了cloudflare的ip

885次阅读
没有评论

Table of Contents

网站用了 cloudflare 之后,日志显示的 ip 变成了 cloudflare 的 ip

引子

之前没注意过这个问题,今天在查看 nginx 后台日志的时候,发现 ip 都是 172 开头,或者是 162 开头的 ip

这个很奇怪,总不能所有人都是这个相似度极高的 ip 吧

我马上意识到,应该是用了 cloudflare 的问题

于是我在谷歌上搜索答案,发现 cloudflare 提供了官方的解决方案,是运用插件实现的

aphache 使用的是 mod_remoteip 插件,nginx 使用的是 ngx_http_realip_module

而我的网站使用的是 cloudfare 作为 cdn,nginx 转发到 apahce 实现的。

插件使用过于复杂,以至于不想去改。

尤其是看到 nginx 的插件没有自动启用,还得需要自己去编译一遍。

探索

经过一段时间的探索后,发现一个叫幻影龙王的博主发布了一个显示 cloudflare 实际 ip 的文章

抱着试试看的心态试了一下,是加载前置的 nginx 上面的。

配置

vim /etc/nginx/nginx.conf
#添加如下代码
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
网站用了 cloudflare 之后,日志显示的 ip 变成了 cloudflare 的 ip

我是直接添加到了 nginx 的 http 块下面了

保存之后执行命令

# 测试 nginx 配置文件语法
nginx -t
#重新加载 nginx 配置
nginx -s reload
网站用了 cloudflare 之后,日志显示的 ip 变成了 cloudflare 的 ip

后续

之后查看日志,发现日志里的 ip 都变成了真实的 ip。

令我惊讶的是后置位的 apache 的日志也正常了。

贴一下该博主的连接:https://cloud.tencent.com/developer/article/1874612

正文完
 
评论(没有评论)
验证码