來源:互聯網
上載者:User
關鍵字
HTTP
nginx
HTTP存取控制模組
模組參考手冊
這些模組預設會全部編譯進Nginx,除非手工指定某個模組在configure時排除。
這個模組提供簡單的基於主機的HTTP://www.aliyun.com/zixun/aggregation/38609.html">存取控制。
nginx_HTTP_access_module這個模組可以通過檢查用戶端IP以進行存取控制。
控制規則按照聲明的順序進行檢查,首條匹配IP的訪問規則將被啟用。
如下例:
location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; deny all;}
上面的例子中僅允許192.168.1.0/24和10.1.1.0/16網路段訪問這個location欄位,但192.168.1.1是個例外。
注意規則的匹配順序,如果你使用過apache你可能會認為你可以隨意控制規則的順序並且他們能夠正常的工作,但實際上不行,下面的這個例子將拒絕掉所有的連接:
location / { #這裡將永遠輸出403錯誤。 deny all; #這些指令不會被啟用,因為到達的連接在第一條已經被拒絕 deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/1}
如果要實施很多複雜的規則,那麼最好使用GeoIP module模組。
指令
allow
語法:allow [ address | CIDR | all ]
預設值:no
使用欄位:HTTP, server, location, limit_except
變數:無
指令指定了允許訪問的IP或網路段。
deny
語法:deny [ address | CIDR | all ]
預設值:no
使用欄位:HTTP, server, location, limit_except
變數:無
指令指定了拒絕訪問的IP或網路段。
提示和技巧
HttpAccess模組可以和error_page指令搭配使用來重定向一個未經驗證的訪問請求。
error_page 403 HTTP://example.com/forbidden.html;location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0 /16; deny all;}