Nginx之访问IP限制ngx_http_access_module模块简介和使用

一、ngx_http_access_module模块简介

  ngx_http_access_module模块,可实现基于ip的访问控制功能,用于限制对某些客户端地址的访问,其功能类似于路由器上的基础acl。ngx_http_access_module模块为默认安装模块,只有allow和deny两个命令,allow表示运行指定IP地址访问,deny表示拒绝指定IP地址访问资源。配置规则说明如下:

  • allow表示允许指定IP访问
  • deny表示拒绝访问
  • allow或者deny后面可以接IP也可以是IP地址段,格式示例192.168.0.0/24
  • 匹配规则为从上到下逐一匹配
  • 没有默认规则,如果是白名单制,需要在最后加上deny all;
  • 地址黑名单和白名单可以配置在server模块内,也可以配置在指定资源路径下;

二、配置示例

[root@s141 conf.d]# cat iptest.conf 
server {
    listen      8888;  #listen、server_name这些正常配置
    server_name 192.168.0.141;
    access_log /var/log/nginx/test.access.log;

    allow 192.168.0.141;  #允许192.168.0.141地址访问
    deny 192.168.0.0/24;  #拒绝192.168.0.0/24网段访问
    allow 172.16.7.6;
    deny all;   #添加默认策略,拒绝所有未配置地址的访问

    location / {
        proxy_pass http://192.168.0.141:8080; ##路径1反向代理地址
    }
    location /two {
        proxy_pass http://192.168.0.141:8080/two;  ##路径2
    }
}

三、测试验证

1、使用172.16.7.6终端访问服务器

在这里插入图片描述

在这里插入图片描述

2、使用被拒绝地址192.168.0.142访问服务器

在这里插入图片描述

3、修改IP地址清单策略

修改IP地址黑白名单策略为允许主机142地址访问页面1,主机141地址可以访问页面2,其他禁止。

[root@s141 conf.d]# cat iptest.conf 
server {
    listen      8888;  #listen、server_name这些正常配置
    server_name 192.168.0.141;
    access_log /var/log/nginx/test.access.log;

    #allow 192.168.0.141;  #允许192.168.0.141地址访问
    #deny 192.168.0.0/24;  #拒绝192.168.0.0/24网段访问
    #allow 172.16.7.6;
    #deny all;   #添加默认策略,拒绝所有未配置地址的访问

    location / {
        allow 192.168.0.142;
        deny all;
        proxy_pass http://192.168.0.141:8080; ##路径1反向代理地址
    }
    location /two {
        allow 192.168.0.141;
        deny all;
        proxy_pass http://192.168.0.141:8080/two;  ##路径2
    }
}

4、使用主机142访问页面1和页面2

在这里插入图片描述

5、使用主机141访问页面1和页面2

在这里插入图片描述

6、其他主机访问页面1和2均拒绝

在这里插入图片描述
在这里插入图片描述

おすすめ

転載: blog.csdn.net/carefree2005/article/details/121313554