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