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,猜測這...