Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn)
1.在Nginx的conf目錄下創(chuàng)建一個(gè)blockip.conf文件
2.里面放需要封禁的IP,格式如下
deny 1.2.3.4;
3.在Nginx的HTTP的配置中添加如下內(nèi)容
include blockips.conf;
4.重啟 Nginx
/usr/local/nginx/sbin/nginx -s reload
然后你就會(huì)看到IP被封禁了,你會(huì)喜提403;
7.小思考:如何實(shí)現(xiàn)使用Nginx自動(dòng)封禁ip的功能
1.AWK統(tǒng)計(jì)access.log,記錄每分鐘訪問(wèn)超過(guò)60次的ip,然后配合nginx進(jìn)行封禁
2.編寫(xiě)shell腳本
3.crontab定時(shí)跑腳本
好了上面操作步驟列出來(lái)了,那我們先來(lái)實(shí)現(xiàn)第一個(gè)吧
操作一: AWK統(tǒng)計(jì)access.log,記錄每分鐘訪問(wèn)超過(guò)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ù)量是否超過(guò)60個(gè),超過(guò)60個(gè)就展示出來(lái)
操作二:編寫(xiě)shell腳本,實(shí)現(xiàn)整體功能(寫(xiě)了注釋代碼)
#不能把別人IP一直封著吧,這里就清除掉了 echo "" > /usr/local/nginx/conf/blockip.conf #前面最開(kāi)始編寫(xiě)的統(tǒng)計(jì)數(shù)據(jù)功能 ip_list=$(awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}') #判斷這個(gè)變量是否為空 if test -z "$ip_list" then #為空寫(xiě)入 11.log中,并重新啟動(dòng)ngnix echo "為空" >> /usr/local/nginx/logs/11.log /usr/local/nginx/sbin/nginx -s reload else #如果不為空 前面加上 deny格式和ip寫(xiě)入blockip.conf中 echo "deny" $ip_list > /usr/local/nginx/conf/blockip.conf #因?yàn)榍懊鏀y帶了行數(shù),所有我們需要去除掉前面的行數(shù),寫(xiě)入后在讀取一次 ip_list2=$(awk '{print $3}' /usr/local/nginx/conf/blockip.conf) #最后再把讀取出來(lái)的值,在次寫(xiě)入到blockip.conf中 echo "deny" $ip_list2";"> /usr/local/nginx/conf/blockip.conf #重啟ngnix /usr/local/nginx/sbin/nginx -s reload #清空之前的日志,從最新的開(kāi)始截取 echo "" > /usr/local/nginx/logs/access.log fi
操作三:使用crontab定時(shí),來(lái)實(shí)現(xiàn)訪問(wèn)每分鐘超過(guò)60的
這個(gè)crontab 就不多講的,不會(huì)的可以去看看我之前的博客地址如下 http://chabaoo.cn/article/144881.htm
直接實(shí)操吧:
crontab -e * * * * * cd /usr/local/nginx/logs/ && sh ip_test.sh 每一分鐘運(yùn)行一次 systemctl restart crond.service 重啟一下配置既可
到此這篇關(guān)于Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx IP封禁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx下修改WordPress固定鏈接導(dǎo)致無(wú)法訪問(wèn)的問(wèn)題解決
這篇文章主要介紹了Nginx下修改WordPress固定鏈接導(dǎo)致無(wú)法訪問(wèn)的問(wèn)題解決,同時(shí)作者也給出了官方關(guān)于修改固定鏈接的方法,需要的朋友可以參考下2015-07-07nginx快速部署一個(gè)網(wǎng)站服務(wù)(多域名+多端口)
本文主要介紹了nginx快速部署一個(gè)網(wǎng)站服務(wù),并實(shí)現(xiàn)多域名和多端口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10Nginx配置實(shí)現(xiàn)高效精準(zhǔn)的流量限制策略詳解
限流(Rate?Limitting)是服務(wù)降級(jí)的一種方式,通過(guò)限制系統(tǒng)的輸入和輸出流量以達(dá)到保護(hù)系統(tǒng)的目的,下面我們就來(lái)看看如何通過(guò)配置Nginx實(shí)現(xiàn)高效精準(zhǔn)的流量限制策略吧2024-02-02windows系統(tǒng)安裝配置nginx環(huán)境
這篇文章介紹了windows系統(tǒng)安裝配置nginx環(huán)境的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06詳解Nginx的配置函數(shù)對(duì)于請(qǐng)求體的讀取
這篇文章主要介紹了Nginx的配置函數(shù)對(duì)于請(qǐng)求體的讀取,深入Nginx的內(nèi)核配置中進(jìn)行講解,需要的朋友可以參考下2015-12-12永中文檔在線轉(zhuǎn)換預(yù)覽基于nginx配置部署方案
這篇文章主要為大家介紹了永中文檔在線轉(zhuǎn)換預(yù)覽基于nginx配置部署方案的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn)
本文主要介紹了Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01