安装 NGINX http_realip_module 模块
在 LNMP 安装目录下找到 lnmp.conf 这个文件,编辑这个文件,在 Nginx_Modules_Options 里加上 --with-http_realip_module
,修改的命令如下:
1 | Nginx_Modules_Options='--with-http_realip_module' |
保存后执行 ./upgrade.sh nginx 来升级下 NGINX 就可以了。升级需要输入新的 NGINX 版本号,如果不想改动版本,直接输入原来的版本号即可。
修改 LNMP 配置启用模块
修改配置文件 /usr/local/nginx/conf/nginx.conf
创建文件 touch /usr/local/nginx/conf/cloudflare_ip.conf
然后,在 server {}
里面加上下面这一行:
1 |
在 /root 目录下创建下面文件:
1 | update_cloudflare_ip.sh |
1 |
|
执行一次脚本:/bin/bash /root/update_cloudflare_ip.sh
保存之后,配置 crontab 每周更新一次 Cloudflare 的 IP 地址(crontab -e):
1 | 0 5 * * 1 /bin/bash /root/update_cloudflare_ip.sh |
修改日志记录配置
还是修改 /usr/local/nginx/conf/nginx.conf
这个文件,在 http {}
中间加入下面几行:
1 | map $HTTP_CF_CONNECTING_IP $clientRealIp { |
注意: 如果include cloudflare_ip.conf;
放在 http {}
中,$remote_addr会替换为真实的ip地址,不需要上面的修改了。
然后在网站记录的日志定义使用main这个日志格式
1 | access_log /home/wwwlogs/abc.com.log main; |
最后重载下nginx
1 | /etc/init.d/nginx reload |
这时就全部搞定了。
防火墙如何封禁真实的用户ip
开了 CDN 之后使用 iptables 是没法封禁真实 IP 地址的。