插件窝 干货文章 Nginx限制IP访问配置,提升网站安全性

Nginx限制IP访问配置,提升网站安全性

Nginx 访问 限制 配置 973    来源:    2025-04-16

Nginx限制IP访问配置指南

Nginx提供了多种方式来限制IP访问,可以有效提升网站安全性。以下是几种常见的配置方法:

1. 允许/拒绝特定IP访问

location / {
    allow 192.168.1.1;    # 允许单个IP
    allow 192.168.1.0/24; # 允许IP段
    deny all;             # 拒绝其他所有IP
}

2. 限制特定路径的访问

location /admin {
    allow 192.168.1.100;
    deny all;
}

3. 基于HTTP基本认证的限制

location /secure {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

4. 限制连接频率(防DDoS)

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        location / {
            limit_req zone=one burst=5;
        }
    }
}

5. 限制并发连接数

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    server {
        location / {
            limit_conn addr 10;
        }
    }
}

6. 使用Geo模块限制国家/地区访问

http {
    geo $blocked_country {
        default 0;
        include /etc/nginx/geo.conf;
    }

    server {
        if ($blocked_country) {
            return 403;
        }
    }
}

/etc/nginx/geo.conf中定义要阻止的国家IP段。

7. 阻止恶意User-Agent

map $http_user_agent $blocked_agent {
    default 0;
    ~*(wget|curl|nikto|sqlmap) 1;
}

server {
    if ($blocked_agent) {
        return 403;
    }
}

8. 防止目录遍历攻击

location ~* \.(php|asp|aspx|jsp)$ {
    if ($uri ~* "\.\.") {
        return 403;
    }
}

最佳实践建议

  1. 最小权限原则:只开放必要的访问权限
  2. 日志监控:定期检查Nginx访问日志中的异常IP
  3. 分层防护:结合防火墙、WAF等多层防护
  4. 定期更新:保持Nginx版本最新以修复安全漏洞
  5. 测试验证:配置变更后务必测试确保不影响正常访问

配置完成后,使用以下命令测试并重载Nginx:

nginx -t  # 测试配置
nginx -s reload  # 重载配置

这些配置可以根据实际需求组合使用,构建更全面的安全防护体系。