nginx中ngx_http_access_module模塊能夠按客戶(hù)端地址設(shè)置是否有訪(fǎng)問(wèn)權(quán)限。
allow
指令設(shè)置允許訪(fǎng)問(wèn)的IP或網(wǎng)絡(luò),如allow 172.17.0.8;
、allow 172.17.0.0/16;
deny
指令設(shè)置限制訪(fǎng)問(wèn)的IP或網(wǎng)絡(luò),如deny 172.17.0.8;
、deny 172.17.0.0/16;
allow
和deny
這兩個(gè)指令都可以配置在http, server, location, limit_except
塊中。
一個(gè)配置塊中如果配置了多個(gè)allow
或deny
指令,按先后順序逐條匹配,第一個(gè)匹配成功的規(guī)則立即生效不會(huì)再檢查后面的規(guī)則。
如何檢查規(guī)則是否匹配:請(qǐng)求的客戶(hù)端的IP與allow或deny指令后的IP/網(wǎng)絡(luò)是否匹配。
如以下配置中:172.17.0.8不能訪(fǎng)問(wèn),172.17.0.0/16網(wǎng)絡(luò)中的其它地址都能訪(fǎng)問(wèn)。因?yàn)閬?lái)自172.17.0.8的請(qǐng)求匹配到第一條規(guī)則deny 172.17.0.8;
后禁止訪(fǎng)問(wèn)。而172.17.0.7能夠訪(fǎng)問(wèn)是因?yàn)?/span>allow 172.17.0.0/16;規(guī)則生效。allowallow 172.17.0.0/16;
server {
listen 8366;
location / {
deny 172.17.0.8;
allow 172.17.0.0/16;
deny all;
root html;
index index.html index.htm;
}
}
?修改以上配置,將第一、二條規(guī)則交換順序后,172.17.0.8可以訪(fǎng)問(wèn)。因?yàn)?span textstyle="" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(255, 76, 65);">第一條規(guī)則allow 172.17.0.0/16;
匹配成功后不會(huì)再往后執(zhí)行deny 172.17.0.8
。
server {
listen 8366;
location / {
allow 172.17.0.0/16;
deny 172.17.0.8;
deny all;
root html;
index index.html index.htm;
}
}
閱讀原文:原文鏈接
該文章在 2025/7/1 23:43:04 編輯過(guò)