使用Cloudflare后配置Nginx获取客户端IP
需求使用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了
页:
[1]