nginx 檢視訪問 IP 並封禁 IP 詳解

2021-07-14 12:19:17 字數 1778 閱讀 3356

1、查詢伺服器所有訪問者ip方法:

awk '' 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的方法:
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
如果配置沒有問題,就會輸出:

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 {}語句塊。

參考:

nginx 檢視訪問 IP 並封禁 IP 詳解

1 查詢伺服器所有訪問者ip方法 awk nginx access.log sort uniq c sort n nginx.access.log 為nginx訪問日誌檔案所在路徑 會到如下結果,前面是ip的訪問次數,後面是ip,很明顯我們需要把訪問次數多的ip並且不是蜘蛛的ip遮蔽掉,如下面結果,...

Nginx封禁惡意IP

網路攻擊時有發生,tcp洪水攻擊 注入攻擊 dos等 比較難防的有ddos等 資料安全,防止對手爬蟲惡意爬取,封禁ip 一般就是封禁ip linux server的層面封ip iptables nginx的層面封ip 方式多種 但 req還是會打進來,讓nginx 返回 403,占用資源 拓展 自動...

nginx 限制 ip 訪問

環境 centos7.6 nginx 1.16.1 背景 nginx 伺服器已經配置好了公網 ip 和 網域名稱證書 公網 ip 對我來說是透明的,沒有管理許可權,所以只好在 nginx 伺服器上做 ip 限制 未修改之前,登入日誌的 remote addr 總是為 192.12.182.3,猜測這...