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