http://blog.csdn.net/flower_vip/article/details/53034380

ajax_beijing_java發表於2017-08-24
Nginx的ngx_http_access_module 模組可以封配置內的ip或者ip段 
語法: 
deny IP; (注:分號是必須的) 
拒絕 某個或某段ip訪問 例如; deny 127.1.1.1 或 deny 127.1.1.1/24後者為一個ip段


allow IP; 
允許 某個或某段ip訪問


那麼問題來了我們實際當中是如何使用的呢?下面來具體說一下。 
比如我的Nginx安裝目錄是在 usr/local/Nginx,那麼我們就可以cd到這個目錄下然後進入conf檔案會看到nginx.conf檔案。(conf資料夾下一般會有好多配置檔案,就專案而言。)我們需要在這個配置檔案下進行配置我們的封IP方法。進入正題 
這裡寫圖片描述
我們使用cat命令檢視一下這個nginx.conf會看到有一段程式碼include ip.black;【加粗斜體】 
user ftp; 
worker_processes 4;


worker_rlimit_nofile 1024; 
events { 
use epoll; 
worker_connections 1024; 
}


http { 
include mime.types; 
default_type application/octet-stream; 
include ip.black; 
log_format yundns_log ‘servernameremote_addr [timelocal]"request” $status


#access_log  logs/access.log  main;


server_tokens off;
sendfile        on;
tcp_nopush     on;
這個被匯入進來的ip.black檔案就是我們的黑名單也就是要禁止訪問的ip地址。那麼ip.black檔案是如何定義的呢? 
deny 1.1.1.1 ; 
deny 2.2.2.2; 
deny 3.3.3.3; 
。。。。 
這裡的ip.black檔案裡面就是使用了deny這個關鍵字+ip或ip段來進行配置的,再次宣告要加分號!!要不然會報錯。 
當然同理我們也可以使用ip.white檔案配置我們的白名單 
allow 4.4.4.4; 
….. 
這裡我使用了一個檔案來定義我的黑名單,並使用include匯入到nginx.conf配置檔案中當然也可以直接寫到nginx.conf配置檔案裡面。 
當我們配置好後要重新reload一下nginx服務,把我們剛加的配置reload進入。 
/usr/local/nginx/sbin/nginx -s reload 
這樣就OK了 分分鐘解決禁止IP訪問的問題。 
對了當配置好黑名單或白名單後可以使用 
/usr/local/nginx/sbin/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 
那表示正確。 
參考地址:http://outofmemory.cn/code-snippet/3393/nginx-deny-ip-or-deny-network-subnets

相關文章