启用Cloudflare CDN后网站获取用户真实访问IP
本博客是裸奔,但是我朋友的网站是我在维护,套了CF后一直没记录到真实访问用户,今天才想起来这不太好,教程参考了别人写的,改成适合我自己日常维护使用习惯的内容,其他详细可以具体访问该教程https://wzfou.com/cdn-real-ip/
一、Nginx编译ngx_http_realip_module
我日常用的是LNMP一键包,所以在lnmp安装目录下找到lnmp.conf编辑它,在Nginx_Modules_Options里加上realip模块,保存后执行./upgrade.sh nginx来升级下Nginx就可以了。命令如下:
Nginx_Modules_Options='--with-http_realip_module'
查看是否已经把http_realip_module模块加入进去
nginx -V
二、Nginx设置set_real_ip_from
CloudFlare的IP段是不会变的,你可以在这里找到:https://www.cloudflare.com/ips/,但是为了以防万一,建议设置一个自动更新CloudFlare的IP的定时任务,自动将最新的IP添加到Nginx的配置文件当中。
在nginx配置目录创建cloudflare_ip.conf文件
touch /usr/local/nginx/conf/cloudflare_ip.conf
修改原有的vhost配置,添加下面一行配置信息
include cloudflare_ip.conf;
创建自更新脚本update_cloudflare_ip.sh(假定该文件放在 /home 目录下),内容如下:
!/bin/bash
echo "#Cloudflare" > /usr/local/nginx/conf/cloudflare_ip.conf;
for i in curl https://www.cloudflare.com/ips-v4; do
echo "set_real_ip_from $i;" >> /usr/local/nginx/conf/cloudflare_ip.conf;
done
for i in curl https://www.cloudflare.com/ips-v6; do
echo "set_real_ip_from $i;" >> /usr/local/nginx/conf/cloudflare_ip.conf;
done
echo "" >> /usr/local/nginx/conf/cloudflare_ip.conf;
echo "# use any of the following two" >> /usr/local/nginx/conf/cloudflare_ip.conf;
echo "real_ip_header CF-Connecting-IP;" >> /usr/local/nginx/conf/cloudflare_ip.conf;
echo "#real_ip_header X-Forwarded-For;" >> /usr/local/nginx/conf/cloudflare_ip.conf;
配置crontab 每周一的上午5点更新
0 5 * * 1 /bin/bash /home/update_cloudflare_ip.sh
码字很辛苦,转载请注明来自非WEB-DL资源站的《启用Cloudflare CDN后网站获取用户真实访问IP》
评论
近期文章
近期评论
分类
文章归档
友情链接