Nginx访问控制模块 – Module ngx_http_access_module


01.nginx的访问控制模块用于基于ip来控制访问请求。

  • 访问控制模块的配置项包括:
    • allow,允许某个范围的ip访问,其格式为:
      allow address | CIDR | unix: | all;
      • allow的格式可以为ip地址(192.168.0.1),网段(192.168.0.0/16)或all(0.0.0.0/0)。
      • allow可以配置在http,server或location配置段中。
    • deny,拒绝某个范围的ip地址访问,其格式为:
      deny address | CIDR | unix: | all;
      • deny的格式可以为ip地址(192.168.0.1),网段(192.168.0.0/16)或all(0.0.0.0/0)。
      • deny可以配置在http,server或location配置段中。
  • 访问控制模块的优先级:
    • 当一个请求入站时,nginx会获取客户端的ip地址,将ip地址自上而下的与allow和deny规则进行匹配。
    • 当第一次匹配到ip地址时,即应用该条规则,后续的规则不再匹配。


02.访问控制模块的配置示例:

  • vim /opt/Apps/nginx/conf/conf.d/main.conf,编辑nginx配置文件,添加如下配置:
server {
    listen 80;
    server_name nginx.test.com;
    error_log logs/nginx_test_error.log error;
    access_log logs/nginx_test_access.log main gzip flush=5m;

    location / {
        root html/main;
        index index.html index.htm index.php;
        deny  192.168.1.1;
        allow 192.168.1.0/24;
        allow 10.1.1.0/16;
        deny  all;
    }
}

  • 客户端ip为172.19.1.134,自上而下匹配,最终匹配到deny all的规则,因此拒绝。
文档更新时间: 2020-03-12 19:04   作者:闻骏