ubuntu

nginx配置中如何实现IP黑名单

小樊
49
2025-11-21 09:58:49
栏目: 编程语言

在Nginx配置中实现IP黑名单,可以通过使用ngx_http_access_module模块来完成。以下是具体的步骤:

方法一:使用denyallow指令

  1. 编辑Nginx配置文件: 打开你的Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/目录下的某个文件。

  2. 添加黑名单配置: 在需要应用黑名单的serverlocation块中,使用deny指令来拒绝特定IP地址的访问,并使用allow指令允许其他IP地址访问。

    server {
        listen 80;
        server_name example.com;
    
        # 黑名单IP列表
        deny 192.168.1.1;
        deny 192.168.1.2;
        deny 192.168.1.3;
    
        # 允许所有其他IP
        allow all;
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    }
    
  3. 重新加载Nginx配置: 保存配置文件后,重新加载Nginx以应用更改。

    sudo nginx -s reload
    

方法二:使用geo模块和map模块

如果你有多个IP地址需要黑名单管理,可以使用geo模块和map模块来简化配置。

  1. 定义黑名单IP: 在http块中定义一个geo变量来存储黑名单IP。

    http {
        geo $blacklist {
            default 0;
            192.168.1.1 1;
            192.168.1.2 1;
            192.168.1.3 1;
        }
    
        map $blacklist $access_control {
            1 "deny";
            default "allow";
        }
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                if ($access_control = "deny") {
                    return 403 "Forbidden";
                }
                root /var/www/html;
                index index.html index.htm;
            }
        }
    }
    
  2. 重新加载Nginx配置: 保存配置文件后,重新加载Nginx以应用更改。

    sudo nginx -s reload
    

注意事项

通过以上方法,你可以在Nginx中有效地实现IP黑名单功能。

0
看了该问题的人还看了