Nginx访问控制 allow、deny,禁止或允许某些IP访问

更新时间:2018-10-06 分类:阅读杂记 浏览量:3675

Nginx访问控制 allow、deny,禁止或允许某些IP访问

用 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全部禁止访问。

参考资料:运维时间