Table of Contents
引子
之前没注意过这个问题,今天在查看 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;
我是直接添加到了 nginx 的 http 块下面了
保存之后执行命令
# 测试 nginx 配置文件语法
nginx -t
#重新加载 nginx 配置
nginx -s reload
后续
之后查看日志,发现日志里的 ip 都变成了真实的 ip。
令我惊讶的是后置位的 apache 的日志也正常了。
贴一下该博主的连接:https://cloud.tencent.com/developer/article/1874612
正文完