nginx访问日志记录cloudflare后真实ip
accesslog记录真实ip
官方方法
使用nginx -V 2>&1 | grep with-http_realip_module,查看nginx是否包含http_realip_module模块,我的ubuntu18 apt安装的nginx已经带有该模块了,那么只需要前往 /etc/nginx/nginx.conf向http{}里面添加如下内容即可。https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs-Logging-visitor-IP-addresses-with-mod-cloudflare-
1 | set_real_ip_from 103.21.244.0/22; |
然后重启nginx即可生效
方法二
感觉该方法虽然能获取真实ip,但是会丢失一些数据…
分析nginx的access.log访问日志的时候,如果我们使用了cloudflare cdn,我们会发现记录的ip都是cloudflare的节点ip,那么该如何记录真实的访问者ip呢?
nano /etc/nginx/nginx.conf修改nginx的配置文件,在http{}内加入
1 | map $HTTP_CF_CONNECTING_IP $clientRealIp |
再在同一文件下的 access_log 末尾加上 access 如 access_log /var/log/nginx/access.log access;.
systemctl restart nginx生效即可。
- 本文标题:nginx访问日志记录cloudflare后真实ip
- 本文作者:aoyouer
- 本文链接:https://i.notesai.com/posts/cloudflare-realip.html
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!



