轉自:http://www.ttlsa.com/linux/nginx-modules-ngx_http_access_module/html
單看nginx模塊名ngx_http_access_module
,不少人必定很陌生,可是deny和allow相比沒一我的不知道的,實際上deny和allow指令屬於ngx_http_access_module.咱們想控制某個uri或者一個路徑不讓人訪問,在nginx就得靠它了。linux
nginx的訪問控制模塊語法很簡單,至少比apache好理解,apache的allow和deny的順序讓不少初學者抓頭.好了具體看下這個插件的使用方法吧。nginx
這個模塊內置在了nginx中,除非你安裝中使用了--without-http_access_module。若是你還沒安裝過nginx,那麼請參考下ttlsa以前寫的nginx安裝.apache
allow
語法: allow address | CIDR | unix: | all;
默認值: —
配置段: http, server, location, limit_except運維
容許某個ip或者一個ip段訪問.若是指定unix:,那將容許socket的訪問.注意:unix在1.5.1中新加入的功能,若是你的版本比這個低,請不要使用這個方法。socket
deny
語法: deny address | CIDR | unix: | all;
默認值: —
配置段: http, server, location, limit_exceptspa
禁止某個ip或者一個ip段訪問.若是指定unix:,那將禁止socket的訪問.注意:unix在1.5.1中新加入的功能,若是你的版本比這個低,請不要使用這個方法。插件
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}unix
從上到下的順序,相似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,接下來容許了3個網段,其中包含了一個ipv6,最後未匹配的IP所有禁止訪問. 在實際生產環境中,咱們也會使用nginx 的geo模塊配合使用,有興趣的請參考ttlsa相關文章nginx geo使用方法.code
nginx訪問控制模塊要數nginx裏面最簡單的指令,只要記住你想禁止誰訪問就deny加上IP,想容許則加上allow ip,想禁止或者容許全部,那麼allow all或者deny all便可.
站點:運維生存時間 網址:http://www.ttlsa.com/html/3585.html