如何使用nginx-cloudflare-real-ip?3分钟快速配置教程
如何使用nginx-cloudflare-real-ip3分钟快速配置教程【免费下载链接】nginx-cloudflare-real-ipThis project aims to modify your nginx configuration to let you get the real ip address of your visitors.项目地址: https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip在使用Cloudflare作为反向代理时Nginx默认只能获取到Cloudflare服务器的IP地址而无法识别真实的访客IP。nginx-cloudflare-real-ip工具通过简单配置即可帮助网站管理员恢复访客真实IP确保日志记录和访问控制的准确性。本文将带你快速完成配置全程仅需3分钟为什么需要恢复真实IP当网站通过Cloudflare加速时所有访客流量会先经过Cloudflare服务器再转发到你的源服务器。此时Nginx日志中记录的将是Cloudflare的IP而非访客真实地址这会导致无法准确统计访客地理位置安全防护规则如IP黑名单失效网站分析数据失真通过nginx-cloudflare-real-ip工具我们可以通过Cloudflare提供的CF-Connecting-IP请求头获取真实IP地址。准备工作在开始前请确保服务器已安装Nginx网站已正确配置Cloudflare具备服务器管理员权限sudo一键安装步骤1. 克隆项目仓库首先将项目代码下载到服务器git clone https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip cd nginx-cloudflare-real-ip2. 运行自动配置脚本项目提供了现成的IP同步脚本cloudflare-sync-ips.sh执行以下命令即可自动生成Cloudflare IP配置文件并更新Nginxsudo bash cloudflare-sync-ips.sh脚本会自动完成从Cloudflare官方获取最新IP段IPv4和IPv6生成Nginx配置文件默认路径/etc/nginx/cloudflare测试Nginx配置并自动重载服务3. 验证配置是否生效配置完成后可以通过查看Nginx生成的配置文件确认结果cat /etc/nginx/cloudflare正常情况下文件应包含类似以下内容#Cloudflare # - IPv4 set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; ... # - IPv6 set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; ... real_ip_header CF-Connecting-IP;设置自动更新Cloudflare的IP段可能会定期更新建议通过crontab设置自动同步1. 复制示例定时任务项目提供了定时任务示例文件crontab-sample.txt内容如下# Auto sync ip addresses of Cloudflare and reload nginx 30 2 * * * /opt/scripts/cloudflare-ip-whitelist-sync.sh /dev/null 212. 添加到系统定时任务将脚本移动到合适位置并设置定时任务# 创建脚本目录 sudo mkdir -p /opt/scripts # 复制脚本 sudo cp cloudflare-sync-ips.sh /opt/scripts/cloudflare-ip-whitelist-sync.sh # 添加执行权限 sudo chmod x /opt/scripts/cloudflare-ip-whitelist-sync.sh # 编辑crontab sudo crontab -e在打开的编辑器中粘贴示例定时任务内容保存后将每天凌晨2:30自动更新IP列表并刷新Nginx。手动配置方法进阶如果需要自定义配置路径可以手动修改Nginx主配置文件1. 编辑Nginx配置打开Nginx主配置文件sudo nano /etc/nginx/nginx.conf2. 添加配置引用在http { ... }块内添加以下行include /etc/nginx/cloudflare;3. 手动生成IP配置文件如果需要指定自定义路径可以通过脚本参数实现sudo bash cloudflare-sync-ips.sh /path/to/your/custom/cloudflare.conf然后在Nginx配置中引用该自定义路径即可。常见问题解决Q: 执行脚本后Nginx无法启动A: 请检查配置文件语法是否正确nginx -tQ: 日志中仍然显示Cloudflare IPA: 确保Nginx配置中没有其他set_real_ip_from指令覆盖当前配置且real_ip_header设置为CF-Connecting-IP。Q: IPv6地址是否需要配置A: 如果服务器支持IPv6且Cloudflare已启用IPv6解析建议保留IPv6配置部分。总结通过nginx-cloudflare-real-ip工具我们只需3分钟即可完成配置恢复网站访客的真实IP地址。配合定时任务还能实现IP列表的自动更新确保配置长期有效。这个简单而强大的工具让网站日志分析和安全防护更加准确可靠项目所有脚本和配置文件均开源详细代码可查看项目文件核心同步脚本cloudflare-sync-ips.sh定时任务示例crontab-sample.txt【免费下载链接】nginx-cloudflare-real-ipThis project aims to modify your nginx configuration to let you get the real ip address of your visitors.项目地址: https://gitcode.com/gh_mirrors/ng/nginx-cloudflare-real-ip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考