欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx如何自動封禁可疑Ip

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

一、Nginx封禁ip

1、簡介

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

如果你的網(wǎng)站服務(wù)器的網(wǎng)站運行環(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ù)自己實際需求修改實際路徑,這里暫時是當(dāng)前目錄
include blocksip.conf; 
  • 重啟 nginx 即可,然后你就會看到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 地址
# 單個網(wǎng)站屏蔽IP的方法,放到網(wǎng)址對應(yīng)的server{}模塊
# 所有網(wǎng)站屏蔽IP的方法,放到http {}模塊

最后重啟 nginx 即可

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

# nginx封鎖禁止單個IP
deny 127.0.0.1;
# nginx 封鎖禁止多個IP,多個IP地址由空格分開
deny 127.0.0.1 196.0.0.1;
# nginx封整個段即從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;

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

二、腳本自動封禁Ip

1、流程介紹

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

2、腳本實戰(zhàn)

2.1 核心腳本解釋

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

2.2 編寫shell腳本

#不能把別人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

2.3 crontab定時

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

總結(jié)

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

相關(guān)文章

  • Nginx作為反向代理時傳遞客戶端IP的設(shè)置方法

    Nginx作為反向代理時傳遞客戶端IP的設(shè)置方法

    因為nginx的優(yōu)越性,現(xiàn)在越來越多的用戶在生產(chǎn)環(huán)境中使用nginx作為前端,不管nginx在前端是做負載均衡還是只做簡單的反向代理,都需要把日志轉(zhuǎn)發(fā)到后端real server,以方便我們檢查程序的各種故障
    2014-08-08
  • Nginx stub_status 監(jiān)控模塊的功能實現(xiàn)

    Nginx stub_status 監(jiān)控模塊的功能實現(xiàn)

    本篇文章主要介紹了Nginx stub_status 監(jiān)控模塊的功能實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Nginx?Rewrite及Location的使用與區(qū)別

    Nginx?Rewrite及Location的使用與區(qū)別

    rewrite和location的功能有點相像,都能實現(xiàn)跳轉(zhuǎn),本文主要介紹了Nginx?Rewrite及Location的使用與區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Nginx 啟動腳本/重啟腳本代碼

    Nginx 啟動腳本/重啟腳本代碼

    Nginx 啟動腳本 重啟腳本,學(xué)習(xí)使用centos配置服務(wù)器的朋友可以參考下。
    2010-10-10
  • 通過lua來配置實現(xiàn)Nginx服務(wù)器的防盜鏈功能

    通過lua來配置實現(xiàn)Nginx服務(wù)器的防盜鏈功能

    這篇文章主要介紹了通過lua來配置實現(xiàn)Nginx服務(wù)器的防盜鏈功能的方法,這里主要講解生成鏈接的Nginx配置,需要的朋友可以參考下
    2016-01-01
  • 阿里云Nginx配置https實現(xiàn)域名訪問項目(圖文教程)

    阿里云Nginx配置https實現(xiàn)域名訪問項目(圖文教程)

    這篇文章主要介紹了阿里云Nginx配置https實現(xiàn)域名訪問項目(圖文教程),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Nginx本地目錄映射實現(xiàn)代碼實例

    Nginx本地目錄映射實現(xiàn)代碼實例

    這篇文章主要介紹了Nginx本地目錄映射實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Nginx實現(xiàn)動靜分離的示例代碼

    Nginx實現(xiàn)動靜分離的示例代碼

    Nginx動靜分離是旨在將靜態(tài)頁面與動態(tài)頁面或靜態(tài)內(nèi)容接口與動態(tài)內(nèi)容接口分開,本文主要介紹了Nginx實現(xiàn)動靜分離的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Nginx學(xué)習(xí)之靜態(tài)文件服務(wù)器配置方法

    Nginx學(xué)習(xí)之靜態(tài)文件服務(wù)器配置方法

    本篇文章主要介紹了Nginx學(xué)習(xí)之靜態(tài)文件服務(wù)器配置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Nginx SSL/TLS配置的實現(xiàn)

    Nginx SSL/TLS配置的實現(xiàn)

    Nginx支持SSL/TLS協(xié)議,用于加密HTTPS通信,本文主要介紹了Nginx SSL/TLS配置的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-02-02

最新評論