网站启用了Cloudflare的免费CDN服务后,nginx的log记录全是Cloudflare节点的IP地址,没法在服务器上用自己的脚本做统计,于是网上查了一下资料,参考Cloudflare的官方说明:How-do-I-restore-original-visitor-IP-with-Nginx
其实就是编辑你网站的nginx配置文件,在location / {} 段落内加如下内容,如:
[email protected]:~# vi /etc/nginx/sites-available/www.itkylin.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # use any of the following two real_ip_header CF-Connecting-IP; #real_ip_header X-Forwarded-For; :wq! |
保存退出后重新启动nginx服务即可:
1 | [email protected]:~# service nginx restart |
注:我的nginx是通过apt-get install方式安装的,默认就启用了http_realip_module
模块,若编辑了配置文件后重新启动nginx服务失败说明你的nginx编译时没有加入
1 | --with-http_realip_module |
参数,你要重新编译你的nginx。