Nginx 自动封IP脚本源码及使用方法
这是一个经典的“日志分析 + 自动拉黑” 极简方案:
1. 自动拉黑脚本 (blockip.sh)
建议直接用这 10 行左右的代码,在 Linux 环境下非常稳。
|
Bash
|
2. 如何在 Nginx 中启用?
你需要在 nginx.conf 的 http 模块或者具体的 server 模块里引用这个黑名单文件:
Nginx
Bashhttp {# 引入黑名单文件include /usr/local/nginx/conf/conf.d/blockip.conf;...}
3. 自动化:开启“上帝模式”
在视频结尾你可以演示这个:用 crontab 让它每分钟自己跑一次。
Bash
|
Bash # 输入 crontab -e 进入编辑# 每 1 分钟执行一次脚本 * * * * * /bin/bash /your/path/blockip.sh |
💡 给粉丝的“避坑”锦囊:
1关于白名单: 如果怕误杀,可以在脚本里加一行 grep -v “你的办公IP”,别把自己给封了,那可就成了直播事故了。
1关于阈值: 脚本里的 200 次(100000行日志中)可以根据业务压力调。如果是接口,设小点;如果是静态资源,设大点。
1封禁时长: 这个脚本是“永久封禁”。如果想做“封 10 分钟自动解封”,那得配合 ipset 或者更高级的 fail2ban。不过对短视频来说,这个 Shell 脚本的视觉冲击力和获得感已经爆表了!
逻辑就是‘抓取 –> 过滤 –>封禁’。
欢迎在评论区交流
夜雨聆风