IP 封禁
在
nginx的conf目录下创建一个blockip.conf文件里面放
需要封禁的IP,格式如下
deny 1.2.3.4; |
- 在
nginx的HTTP的配置中添加如下内容
include blockips.conf; |

- 重启
nginx
/usr/local/nginx/sbin/nginx -s reload |
- 然后你就会看到IP被封禁了,你会喜提
403;

实现自动封禁IP
- 如何实现使用
nginx自动封禁ip的功能?
AWK统计access.log,记录每分钟访问超过60次的ip,然后配合nginx进行封禁- 编写
shell脚本crontab定时跑脚本
先来实现第一个吧

操作一: AWK统计access.log,记录每分钟访问超过60次的ip
awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}' |
awk '{print $1}' access.log:取出access.log的第一列即为ipsort | uniq -cd:去重和排序awk '{if($1>60)print $0}': 判断重复的数量是否超过60个,超过60个就展示出来
操作二:编写shell脚本,实现整体功能(写了注释代码)
#不能把别人IP一直封着吧,这里就清除掉了 |
操作三:使用crontab定时,来实现访问每分钟超过60的
crontab -e |

上面就是全部思路,当然如果你有更好的思路或者方法,欢迎在评论区探讨。





