亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1.在Nginx的conf目錄下創(chuàng)建一個blockip.conf文件

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

deny 1.2.3.4;

3.在Nginx的HTTP的配置中添加如下內(nèi)容

include blockips.conf;

Nginx IP封禁及自動封禁IP的實現(xiàn)

4.重啟 Nginx 

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

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

Nginx IP封禁及自動封禁IP的實現(xiàn)

7.小思考:如何實現(xiàn)使用Nginx自動封禁ip的功能

1.AWK統(tǒng)計access.log,記錄每分鐘訪問超過60次的ip,然后配合nginx進(jìn)行封禁
2.編寫shell腳本
3.crontab定時跑腳本

好了上面操作步驟列出來了,那我們先來實現(xiàn)第一個吧

Nginx IP封禁及自動封禁IP的實現(xiàn)

操作一: AWK統(tǒng)計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}' 判斷重復(fù)的數(shù)量是否超過60個,超過60個就展示出來

操作二:編寫shell腳本,實現(xiàn)整體功能(寫了注釋代碼)

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

#前面最開始編寫的統(tǒng)計數(shù)據(jù)功能
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
    
        #因為前面攜帶了行數(shù),所有我們需要去除掉前面的行數(shù),寫入后在讀取一次
        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定時,來實現(xiàn)訪問每分鐘超過60的

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

直接實操吧:

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

Nginx IP封禁及自動封禁IP的實現(xiàn)

分享到:
標(biāo)簽:IP NginxIP 封禁 服務(wù)器
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定