Nginx访问控制 allow、deny,禁止或允许某些IP访问
更新时间:2018-10-06 分类:阅读杂记 浏览量:3675
用 LNMP 搭建的环境,如果想要禁止某个IP访问,或者是禁止访问某个目录怎么办呢?可以通过 Nginx 模块 ngx_http_access_module 来设置允许某些访问。 Nginx 模块 ngx_http_access_module 的指令 deny 和 allow 可以禁止或是允许对网站的资源访问。具体方法如下:
首先,需要安装 ngx_http_access_module 模块
一般情况下,安装 Nginx 就已经内置在了nginx中,除非你安装中使用了 --without-http_access_module 。如果你还没安装过 Nginx ,那么请参考相关的安装教程。
其次,需要了解 allow 和 deny 指令的作用
allow
语法: allow address | CIDR | unix: | all;
默认值: —
配置段: http, server, location, limit_except
允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。
deny
语法: deny address | CIDR | unix: | all;
默认值: —
配置段: http, server, location, limit_except
禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。
然后,开始配置 Nginx 访问实例
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个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问。
参考资料:运维时间