国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Nginx IP封禁及自動封禁IP的實現

瀏覽:73日期:2023-03-13 15:37:45

1.在Nginx的conf目錄下創建一個blockip.conf文件

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

deny 1.2.3.4;

3.在Nginx的HTTP的配置中添加如下內容

include blockips.conf;

4.重啟 Nginx

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

然后你就會看到IP被封禁了,你會喜提403;

7.小思考:如何實現使用Nginx自動封禁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中,并重新啟動ngnixecho "為空"  >> /usr/local/nginx/logs/11.log/usr/local/nginx/sbin/nginx -s reloadelse#如果不為空 前面加上 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.logfi

操作三:使用crontab定時,來實現訪問每分鐘超過60的

這個crontab 就不多講的,不會的可以去看看我之前的博客地址如下https://www.jb51.net/article/144881.htm

直接實操吧:

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

到此這篇關于Nginx IP封禁及自動封禁IP的實現的文章就介紹到這了,更多相關Nginx IP封禁內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Nginx
主站蜘蛛池模板: 新绛县| 富顺县| 舞阳县| 凭祥市| 左云县| 聂荣县| 左云县| 木兰县| 天台县| 章丘市| 台东市| 耒阳市| 兰溪市| 紫金县| 嘉祥县| 阿勒泰市| 湟源县| 武陟县| 南溪县| 台安县| 揭西县| 东平县| 榆树市| 巫山县| 呼图壁县| 融水| 闽清县| 安达市| 麻阳| 通渭县| 什邡市| 三都| 佳木斯市| 新营市| 威信县| 台中县| 太和县| 福贡县| 双柏县| 伊金霍洛旗| 青海省|