转载地址:http://shouce.jb51.net/nginx/StandardHTTPModules/HTTPAccess.html
·摘要

这个模块提供简单的基于主机的访问控制。
ngx_http_access_module这个模块可以详细的检查客户端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网络段访问,但192.168.1.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或网络段。
实例如下:
第一个实例:设置拒绝192.168.64.136访问http://192.168.64.132/1.html,允许所有人可以访问。设置文件如下:
nginx基于IP访问控制_第1张图片
验证结果如下:
nginx基于IP访问控制_第2张图片
第二个实例:允许192.168.64.136访问http://192.168.64.132/1.html,拒绝所有人可以访问,设置文件如下:
nginx基于IP访问控制_第3张图片
验证效果,如下:
nginx基于IP访问控制_第4张图片
注意:每一次配置文件的修改都需要nginx -t 检查一下,并重载一下nginx.
如果你想添加多个允许主机IP,只要另起一行即可。
顺便提一下状态监控的情况,监控一般只要自己能访问就行了,可以这样设置:
nginx基于IP访问控制