在Nginx中,可以使用ngx_http_access_module模块来配置黑白名单。

具体配置步骤如下:

  1. 打开Nginx配置文件,在http块中添加以下代码:
http {
    ...
    # 定义黑名单
    geo $blacklist {
        default 0;
        # IP地址或CIDR格式的网段
        10.0.0.0/24 1;
        192.168.1.0/24 1;
    }

    # 定义白名单
    geo $whitelist {
        default 0;
        127.0.0.1 1;
        192.168.0.0/16 1;
    }

    # 检查黑名单和白名单
    server {
        ...
        location / {
            # 检查黑名单,如果匹配到则拒绝访问
            if ($blacklist = 1) {
                return 403;
            }

            # 检查白名单,如果未匹配到则拒绝访问
            if ($whitelist = 0) {
                return 403;
            }

            # 其他配置
            ...
        }
    }
    ...
}
  1. geo块中定义黑名单和白名单。geo指令后的变量名称可以自定义,这里分别定义为$blacklist$whitelist。在default指令后,可以设置默认值,这里设置为0。

  2. server块中的location /中,使用if指令检查黑名单和白名单。如果黑名单匹配到,则返回403禁止访问;如果白名单未匹配到,则返回403禁止访问;否则,可以继续访问。

注意事项:

  • 使用黑名单和白名单时,建议将匹配规则细化到具体的IP地址或CIDR格式的网段,以避免误拦截或误放行。
  • 在配置文件修改后,需重启Nginx服务使配置生效
nginx的黑白名单配置

原文地址: https://www.cveoy.top/t/topic/inr7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录