温馨提示×

Debian Nginx 如何限制访问频率

小樊
49
2026-01-08 09:04:47
栏目: 智能运维

在 Debian 系统上使用 Nginx 限制访问频率,通常是通过配置 Nginx 的 ngx_http_limit_req_module 模块来实现的。这个模块允许你设置请求速率限制,以防止恶意用户或爬虫对服务器造成过大压力。

以下是配置 Nginx 限制访问频率的步骤:

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

    sudo apt update
    sudo apt install nginx
    
  2. 编辑 Nginx 配置文件: 打开 Nginx 的主配置文件,通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default

    sudo nano /etc/nginx/nginx.conf
    

    或者

    sudo nano /etc/nginx/sites-available/default
    
  3. 添加限制访问频率的配置: 在 server 块或 location 块中添加以下配置:

    http {
        # 其他配置...
    
        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                limit_req zone=mylimit burst=5 nodelay;
                # 其他配置...
            }
        }
    }
    

    解释:

    • limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

      • $binary_remote_addr:使用客户端的 IP 地址作为键。
      • zone=mylimit:10m:定义一个名为 mylimit 的共享内存区域,大小为 10MB。
      • rate=1r/s:限制每秒最多处理 1 个请求。
    • limit_req zone=mylimit burst=5 nodelay;

      • zone=mylimit:使用之前定义的共享内存区域。
      • burst=5:允许突发请求达到 5 个,超过这个数量的请求将被延迟处理。
      • nodelay:禁用延迟处理,即所有请求都会立即处理,但会限制总体速率。
  4. 保存并退出编辑器: 按 Ctrl+X,然后按 Y 确认保存,最后按 Enter 退出。

  5. 测试 Nginx 配置: 在重新加载 Nginx 之前,先测试配置文件是否有语法错误:

    sudo nginx -t
    

    如果配置文件没有问题,你会看到类似以下的输出:

    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  6. 重新加载 Nginx: 使配置生效:

    sudo systemctl reload nginx
    

现在,Nginx 将根据配置限制访问频率。你可以根据需要调整 rateburst 参数,以适应你的具体需求。

0