在 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 服务使配置生效。

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

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