nginx 查看訪問 IP 並封禁 IP 詳解


1、查找服務器所有訪問者ip方法:

awk '{print $1}' nginx_access.log |sort |uniq -c|sort -n

 

nginx.access.log 為nginx訪問日志文件所在路徑

會到如下結果,前面是ip的訪問次數,后面是ip,很明顯我們需要把訪問次數多的ip並且不是蜘蛛的ip屏蔽掉,如下面結果, 
若 66.249.79.84 不為蜘蛛則需要屏蔽:

     89 106.75.133.167
     90 118.123.114.57
     91 101.78.0.210
     92 116.113.124.59
     92 119.90.24.73
     92 124.119.87.204
    119 173.242.117.145
   4320 66.249.79.84

 

 

2、屏蔽IP的方法: 
在nginx的安裝目錄下面,新建屏蔽ip文件,命名為guolv_ip.conf,以后新增加屏蔽ip只需編輯這個文件即可。 
加入如下內容並保存:

deny 66.249.79.84 ; 

 

在nginx的配置文件nginx.conf中加入如下配置,可以放到http, server, location, limit_except語句塊,需要注意相對路徑,本例當中nginx.conf,guolv_ip.conf在同一個目錄中。

include guolv_ip.conf; 

 

保存nginx.conf文件,然后測試現在的nginx配置文件是否是合法的:

 nginx -t

 

如果配置沒有問題,就會輸出:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful

如果配置有問題就需要檢查下哪兒有語法問題,如果沒有問題,需要執行下面命令,重載 nginx 配置文件:

service nginx  reload

3、注意:

屏蔽ip的配置文件既可以屏蔽單個ip,也可以屏蔽ip段,或者只允許某個ip或者某個ip段訪問。

//屏蔽單個ip訪問 deny IP; //允許單個ip訪問 allow IP; //屏蔽所有ip訪問 deny all; //允許所有ip訪問 allow all; //屏蔽整個段即從123.0.0.1到123.255.255.254訪問的命令 deny 123.0.0.0/8 //屏蔽IP段即從123.45.0.1到123.45.255.254訪問的命令 deny 124.45.0.0/16 //屏蔽IP段即從123.45.6.1到123.45.6.254訪問的命令 deny 123.45.6.0/24 //如果你想實現這樣的應用,除了幾個IP外,其他全部拒絕, //那需要你在guolv_ip.conf中這樣寫 allow 1.1.1.1; allow 1.1.1.2; deny all; 
單獨網站屏蔽IP的方法,把include guolv_ip.conf; 放到網址對應的在server{}語句塊, 所有網站屏蔽IP的方法,把include guolv_ip.conf; 放到http {}語句塊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM