前段时间,本站开始上了Cloudflare的CDN服务,但是使用了一段时间后发现访问记录中记录的IP地址都变成了Cloudflare的节点地址。。。
这种情况肯定不好是吧╮(╯﹏╰)╭ (不能满足本人的好奇心嘛~
那就去解决它!
惯例性滴先Google了一下,发现了这篇文章
- How do I restore original visitor IP with Nginx? – Cloudflare Support
- Module ngx_http_realip_module - Nginx
看起来挺简单的嘛,在nginx配置文件中加一段地址说明就好了的事。。
然而在重启时却发现,报错了。。。。。新添加的”set_real_ip_from”没有被认出来,导致新配置的文件不被认可就没能重启。。
于是认真的看了下说明。
This module is not built by default, it should be enabled with the
--with-http_realip_moduleconfiguration parameter.
原来如此嘛,是当初安装的时候没有安装所需要的模块呀~
那就开始在已经配置好的nginx上添加未编译安装模块吧。
使用lnmp.org 提供的一件包可以编辑
lnmp.conf文件,添加nginx编译属性,然后使用upgrade.sh来无人值守升级避免下述问题。
1、看下编译安装nginx的时候,都编译安装的哪些模块。执行命令:” /usr/local/nginx/sbin/nginx -V “,得到一下信息
1 | [root@WiseImpressionable-VM src]# /usr/local/nginx/sbin/nginx -V |
2、进入到nginx的安装目录,(这里吐槽下Virmach,果真是垃圾VPS提供商。母鸡的IPv6服务坏了快一个月都没能好)。我这里用的是当初我安装lnmp时候留下来的安装包。如果没有的话,可以用wget的方法从nginx官网上重新得到安装包。
1 | cd /root/lnmp1.3-full/src |
3、重新./configure ,添加所需要的模块后使用make编译。格式应该是这样的:”./configure “ + 第一步得到的configure arguments信息 + 你想要添加的模块。
1 | [root@WiseImpressionable-VM nginx-1.10.0]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-http_realip_module |
千万要注意:到这里就可以了,千万不要make install,不然文件就会被覆盖了。
4、备份原先配置,杀掉nginx进程,然后替换nginx二进制文件
1 | [root@WiseImpressionable-VM nginx-1.10.0]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak |
5、更改站点的nginx配置文件,在location / {} 中加入第一篇文章中提到的信息
1 | location / { |
6、重启nginx服务lnmp nginx restart
我这里用的是lnmp带的命令,你还可以使用下面的命令来重启并检查nginx运行情况
1 | [root@WiseImpressionable-VM nginx-1.10.0]# /usr/local/nginx/sbin/nginx |
2018.01.01 更
7、自动更新 cloudflare-real-ip 清单
如果你是使用lnmp.org提供的一键包来安装的,请参照进行。
在nginx配置目录创建
cloudflare_ip.conf文件touch /usr/local/nginx/conf/cloudflare_ip.conf修改原有的vhost配置,将原来第五步配置的信息改为
include cloudflare_ip.conf;创建自更新脚本
update_cloudflare_ip.sh(假定该文件放在 /root 目录下),内容如下:
1 | !/bin/bash |
配置crontab0 5 * * 1 /bin/bash /root/update_cloudflare_ip.sh
↑ 每周一的上午5点更新
实验后效果

