需求
使用Cloudflare作为cdn加速前端,需要nginx获取真实访客ip地址
环境:
centos 7.9 X64 宝塔 7
解决:
宝塔下需要在 计划任务 里面
配置一个脚本(每10分钟执行一次)
- #!/usr/bin/env bash
- # 功能: 生成 cloudflare 代理IP列表,用户配置nginx获取客户端真实IP地址
- cf_ipv4="https://www.cloudflare.com/ips-v4"
- cf_ipv6="https://www.cloudflare.com/ips-v6"
- mod_cffile="/www/server/panel/vhost/nginx/cloudflare.conf"
- get_cfipinfo() {
- # 生成nginx配置记录格式: set_real_ip_from 127.0.0.0/22;
- curl $cf_ipv4 2>/dev/null | grep -v '#' | grep -v '^$' | sed 's/^/set_real_ip_from /g;s/$/;/g'
- curl $cf_ipv6 2>/dev/null | grep -v '#' | grep -v '^$' | sed 's/^/set_real_ip_from /g;s/$/;/g'
-
- echo
- # echo "real_ip_header CF-Connecting-IP;"
- echo "real_ip_header X-Forwarded-For;"
- echo
- }
- get_cfipinfo | tee $mod_cffile
复制代码
说明下 /www/server/panel/vhost/nginx 路径为使用宝塔面板的默认目录
这样nginx就可以获取真实访问客户端ip了
|