最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx如何自動(dòng)封禁可疑Ip

 更新時(shí)間:2025年06月17日 09:06:44   作者:魅Lemon  
這篇文章主要介紹了Nginx如何自動(dòng)封禁可疑Ip問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、Nginx封禁ip

1、簡(jiǎn)介

在網(wǎng)站維護(hù)過程中,有時(shí)候我們需要對(duì)一些IP地址或是一些IP段進(jìn)行封鎖拉黑,使其不能訪問網(wǎng)站。

如果你的網(wǎng)站服務(wù)器的網(wǎng)站運(yùn)行環(huán)境是由nginx搭建的,那么nginx中禁止ip的方法可以有效的防止網(wǎng)站被黑。

2、nignx 禁止IP訪問

2.1 方法一

  • 在 nginx 的安裝目錄中(一般在/etc/nginx/),找到 nginx.conf 文件(可以看一下access.log日志在哪,后面腳本要用),并在當(dāng)前目錄創(chuàng)建 blocksip.conf 文件
  • 編輯 blocksip.conf 文件,并加入以下代碼
deny 127.0.0.1;
# 127.0.0.1 為要封禁的 IP 地址
  • 編輯 nginx.conf 文件,在ngnix的HTTP的配置中添加如下內(nèi)容
# 根據(jù)自己實(shí)際需求修改實(shí)際路徑,這里暫時(shí)是當(dāng)前目錄
include blocksip.conf; 
  • 重啟 nginx 即可,然后你就會(huì)看到IP被封禁了,喜提403
/usr/local/nginx/sbin/nginx -s reload

2.2 方法二

編輯 配置目錄下的 nginx.conf 文件,在** http{} 或 server{}** 中添加以下代碼

deny 127.0.0.1;
# 127.0.0.1:為要封禁的 IP 地址
# 單個(gè)網(wǎng)站屏蔽IP的方法,放到網(wǎng)址對(duì)應(yīng)的server{}模塊
# 所有網(wǎng)站屏蔽IP的方法,放到http {}模塊

最后重啟 nginx 即可

3、關(guān)于 deny 的使用

# nginx封鎖禁止單個(gè)IP
deny 127.0.0.1;
# nginx 封鎖禁止多個(gè)IP,多個(gè)IP地址由空格分開
deny 127.0.0.1 196.0.0.1;
# nginx封整個(gè)段即從127.0.0.1到127.255.255.254的命令
deny 127.0.0.0/8;
# nginx 封IP段即從127.255.0.1到127.255.255.254的命令
deny 127.255.0.0/16
# nginx 封IP段即從127.255.255.1到127.255.255.254的命令是
deny 127.255.255.0/24
# 屏蔽所有ip訪問
deny all;

# 允許單個(gè)ip訪問,和上面同理
allow IP; 
# 允許所有ip訪問
allow all; 

二、腳本自動(dòng)封禁Ip

1、流程介紹

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

2、腳本實(shí)戰(zhàn)

2.1 核心腳本解釋

awk '{print $1}' access.log | sort | uniq -cd | awk '{if($1>60)print $0}'  
  • AWK統(tǒng)計(jì)access.log,記錄每分鐘訪問超過60次的ip
  • awk '{print $1}' access.log 取出access.log的第一列即為ip
  • sort | uniq -cd 去重和排序
  • awk '{if($1>60)print $0}' 判斷重復(fù)的數(shù)量是否超過60個(gè),超過60個(gè)就展示出來

2.2 編寫shell腳本

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

#前面最開始編寫的統(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
        #為空寫入 11.log中,并重新啟動(dòng)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
   
        #因?yàn)榍懊鏀y帶了行數(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

2.3 crontab定時(shí)

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Nginx配置SSL證書出現(xiàn)PEM_read_bio_PrivateKey() failed錯(cuò)誤解決

    Nginx配置SSL證書出現(xiàn)PEM_read_bio_PrivateKey() failed錯(cuò)誤解決

    在配置GoDaddy的SSL證書并啟動(dòng)Nginx時(shí),可能遇到由于證書密鑰文件編碼問題導(dǎo)致的啟動(dòng)失敗,具體表現(xiàn)為nginx報(bào)錯(cuò):PEM_read_bio_PrivateKey() failed,本文就來介紹一下,感興趣的可以了解學(xué)習(xí)
    2024-10-10
  • Nginx中sub_filter 配置使用小結(jié)

    Nginx中sub_filter 配置使用小結(jié)

    sub_filter?是一個(gè)用于替換響應(yīng)內(nèi)容的模塊,本文主要介紹了 Nginx中sub_filter 配置使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Nginx http運(yùn)行狀況健康檢查配置過程解析

    Nginx http運(yùn)行狀況健康檢查配置過程解析

    這篇文章主要介紹了Nginx http運(yùn)行狀況健康檢查配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 記一次nginx中proxy_pass的使用問題

    記一次nginx中proxy_pass的使用問題

    這篇文章主要介紹了記一次nginx中proxy_pass的使用問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 網(wǎng)站如何通過nginx設(shè)置黑/白名單IP限制及國(guó)家城市IP訪問限制

    網(wǎng)站如何通過nginx設(shè)置黑/白名單IP限制及國(guó)家城市IP訪問限制

    如果你的服務(wù)器被攻擊很厲害,而且服務(wù)器是自己練手的,不需要其他用戶訪問的,那么就可以配置一下nginx的白名單,下面這篇文章主要給大家介紹了關(guān)于網(wǎng)站如何通過nginx設(shè)置黑/白名單IP限制及國(guó)家城市IP訪問限制的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Nginx服務(wù)器作反向代理時(shí)的緩存配置要點(diǎn)解析

    Nginx服務(wù)器作反向代理時(shí)的緩存配置要點(diǎn)解析

    這篇文章主要介紹了Nginx服務(wù)器作反向代理時(shí)的緩存配置要點(diǎn)解析,需要的朋友可以參考下
    2016-04-04
  • Nginx的405 not allowed錯(cuò)誤解決方法

    Nginx的405 not allowed錯(cuò)誤解決方法

    本文主要介紹了Nginx的405 not allowed錯(cuò)誤解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Nginx啟動(dòng)時(shí)80端口被占用的問題解決

    Nginx啟動(dòng)時(shí)80端口被占用的問題解決

    本文主要介紹了在啟動(dòng)Nginx時(shí)遇到80端口被占用的問題及解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 詳解nginx rewrite和根據(jù)url參數(shù)location

    詳解nginx rewrite和根據(jù)url參數(shù)location

    本篇文章主要是介紹了nginx rewrite和根據(jù)url參數(shù)location,有興趣的同學(xué)可以了解以下。
    2016-11-11
  • Nginx出現(xiàn)404 Not Found nginx/1.23.4的完美解決方案

    Nginx出現(xiàn)404 Not Found nginx/1.23.4的完美解決方案

    在Nginx配置過程中,404 Not Found錯(cuò)誤是一個(gè)常見問題,本文將詳細(xì)解析Nginx 404 Not Found的原因及解決方案,確保您能夠輕松解決這一問題,需要的小伙伴跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07

最新評(píng)論

盐亭县| 迭部县| 石景山区| 绥芬河市| 宣汉县| 扎赉特旗| 合肥市| 宜宾县| 神农架林区| 普宁市| 石家庄市| 长春市| 东乡| 墨脱县| 宁阳县| 晋城| 湾仔区| 即墨市| 瓦房店市| 巴林左旗| 科技| 富源县| 项城市| 永登县| 海晏县| 武川县| 寿宁县| 屏东县| 上栗县| 崇州市| 大化| 金山区| 龙岩市| 阳谷县| 卫辉市| 旬邑县| 温州市| 乐安县| SHOW| 纳雍县| 普宁市|