ChatGPT VS 运维工程师:Ngnix IP封禁以及实现自动封禁IP

昨天看了一篇技术文章,讲 Nginx IP 封禁的,写的不但是看完之后,我突然好奇,同样的问题,ChatGPT会怎么回答?于是我问下了ChatGPT,ChatGPT只用了几秒钟,给我列了 5 个步骤,并解释了每个步骤在干什么。我瞬间觉得自己刚刚看过的那篇文章不香了,因为ChatGPT给的答案似乎更优雅。ChatGPT真的是技术领域妥妥的生产率工具,太高效了~下面我分别给大家贴出人类工程师和ChatGPT,对于 Nginx IP 封禁任务的解答。谁的答案更好?欢迎大家讨论~

 

1

人类运维工程师的解答

 

原文链接:https://blog.csdn.net/qq_38925100/article/details/123742463


1、在ngnix的conf目录下创建一个blockip.conf文件

2、里面放需要封禁的IP,格式如下

deny 1.2.3.4;
3、在ngnix的HTTP的配置中添加如下内容
include blockips.conf;

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

小思考:如何实现使用ngnix自动封禁ip的功能
1.AWK统计access.log,记录每分钟访问超过60次的ip,然后配合nginx进行封禁
2.编写shell脚本
3.crontab定时跑脚本

好了上面操作步骤列出来了,那我们先来实现第一个吧

操作一:AWK统计access.log,记录每分钟访问超过60次的ip

awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}'

1. awk '{print $1}' access.log   取出access.log的第一列即为ip。
2. sort | uniq -cd  去重和排序
3. awk '{if($1>60)print $0}' 判断重复的数量是否超过60个,超过60个就展示出来

操作二:编写shell脚本,实现整体功能(写了注释代码)

#不能把别人IP一直封着吧,这里就清除掉了
echo "" > /usr/local/nginx/conf/blockip.conf

#前面最开始编写的统计数据功能
ip_list=$(awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}')

#判断这个变量是否为空
if test -z "$ip_list"
then
        #为空写入 11.log中,并重新启动ngnix
        echo "为空"  >> /usr/local/nginx/logs/11.log

        /usr/local/nginx/sbin/nginx -s reload

else
        #如果不为空 前面加上 deny格式和ip写入blockip.conf中
        echo "deny" $ip_list > /usr/local/nginx/conf/blockip.conf
    
        #因为前面携带了行数,所有我们需要去除掉前面的行数,写入后在读取一次
        ip_list2=$(awk '{print $3}' /usr/local/nginx/conf/blockip.conf)
        
        #最后再把读取出来的值,在次写入到blockip.conf中
        echo "deny" $ip_list2";"> /usr/local/nginx/conf/blockip.conf

        #重启ngnix
        /usr/local/nginx/sbin/nginx -s reload
        #清空之前的日志,从最新的开始截取
        echo "" > /usr/local/nginx/logs/access.log

fi

操作三:使用crontab定时,来实现访问每分钟超过60的

crontab -e 
* * * * * cd /usr/local/nginx/logs/ && sh ip_test.sh  每一分钟运行一次
systemctl restart crond.service 重启一下配置既可

 

2

ChatGPT的回答



 

相关推荐

  • 恭喜!刚刚正式发布:中小学近视的学生有救了,不手术、见效快!
  • 大数据OLAP系统(2)——开源组件篇
  • 大数据OLAP系统(1)——概念篇
  • 值了。。。
  • ChatGPT之后何去何从?LeCun新作:全面综述下一代「增强语言模型」
  • 深入浅出Prompt Learning要旨及常用方法
  • 怎样让ChatGPT在其内部训练神经网络?先让它想象自己有4块3090
  • 杭州拟向三孩家庭发放补助2万元;深圳一楼盘送 60 万首付被查处;美司令暗示台湾有事将部署攻击解放军...|酷玩日爆
  • 遭到人工智能“背刺” 的我 | 每日一冷
  • 曾经“狂飙”全国的“小灵通”,为何突然消失了?
  • 二十年!中国造船终于干翻日韩!
  • 选内裤选到眼睛花……
  • 二舅治不好的精神内耗,毕业5年存不到5千的名校生能治?
  • 八股文JAVA编程小程序,单日PV过1000拉
  • logback - 自定义日志脱敏组件,一种不错的脱敏方案
  • “不务正业”的跨国木材公司,不好好伐木,竟卖起了俄罗斯蜂蜜......
  • 花2周时间选出来的内裤,原来“裆下生风”是这种感觉……
  • 她居然把加拿大的国歌改了;扎哈罗娃称,破坏平等国际安全体系的是西方;专家警告:"超级野猪"入侵美国 | 每日大新闻
  • 中国碳中和的最后一块拼图,竟是一瓶“液态阳光”?
  • FPGA加速图数据库查询执行