温馨提示×

如何在Ubuntu上限制Nginx访问

小樊
71
2025-12-13 03:16:17
栏目: 智能运维

在Ubuntu上限制Nginx访问可以通过多种方式实现,包括使用防火墙规则、配置Nginx的访问控制模块以及使用第三方工具。以下是一些常见的方法:

方法一:使用防火墙(ufw)

  1. 安装ufw(如果尚未安装):

    sudo apt update
    sudo apt install ufw
    
  2. 启用ufw:

    sudo ufw enable
    
  3. 允许HTTP和HTTPS流量:

    sudo ufw allow 'Nginx Full'
    
  4. 限制特定IP访问:

    sudo ufw allow from 192.168.1.1 to any port 80
    sudo ufw allow from 192.168.1.1 to any port 443
    
  5. 查看ufw状态:

    sudo ufw status
    

方法二:配置Nginx的访问控制模块

  1. 编辑Nginx配置文件:

    sudo nano /etc/nginx/nginx.conf
    
  2. 添加访问控制指令: 你可以在server块中添加allow和deny指令来限制访问。例如:

    server {
        listen 80;
        server_name example.com;
    
        location / {
            allow 192.168.1.1;
            deny all;
            root /var/www/html;
            index index.html index.htm;
        }
    }
    
  3. 测试配置并重启Nginx:

    sudo nginx -t
    sudo systemctl restart nginx
    

方法三:使用第三方工具(如Fail2Ban)

  1. 安装Fail2Ban:

    sudo apt update
    sudo apt install fail2ban
    
  2. 配置Fail2Ban: Fail2Ban会监控日志文件并根据配置的规则阻止恶意IP。你可以编辑/etc/fail2ban/jail.local文件来添加自定义规则。例如:

    [nginx]
    enabled = true
    port = http,https
    filter = nginx-auth
    logpath = /var/log/nginx/access.log
    bantime = 3600
    findtime = 600
    maxretry = 3
    
  3. 重启Fail2Ban:

    sudo systemctl restart fail2ban
    

方法四:使用IPset和iptables

  1. 安装IPset:

    sudo apt update
    sudo apt install ipset
    
  2. 创建IPset集合:

    sudo ipset create blacklist hash:ip
    
  3. 添加阻止规则到iptables:

    sudo iptables -I INPUT -m set --match-set blacklist src -j DROP
    
  4. 配置Fail2Ban来更新IPset集合: 编辑/etc/fail2ban/jail.local文件,添加相应的过滤器配置。

通过以上方法,你可以有效地限制Nginx的访问,保护你的服务器免受未经授权的访问。选择适合你需求的方法进行配置即可。

0 踩