温馨提示×

Debian Nginx流量控制方法

小樊
56
2025-08-17 02:35:45
栏目: 智能运维

Debian系统下可通过Nginx的ngx_http_limit_req_modulengx_http_limit_conn_module模块实现流量控制,具体方法如下:

  • 请求速率限制(令牌桶算法)
    使用limit_req_zone定义限流区域(如按IP),通过rate参数设置速率(如10r/s),结合burst参数允许突发请求,nodelay参数可立即处理突发请求。
    示例

    http {  
        limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;  
        server {  
            location /api/ {  
                limit_req zone=api_limit burst=20 nodelay;  
            }  
        }  
    }  
    
  • 并发连接数限制
    使用limit_conn_zone定义共享内存区域,通过limit_conn指令限制单个IP或服务器的并发连接数。
    示例

    http {  
        limit_conn_zone $binary_remote_addr zone=conn_limit:10m;  
        server {  
            location /download/ {  
                limit_conn conn_limit 5;  
            }  
        }  
    }  
    
  • 白名单设置
    通过geomap模块定义白名单IP,使其不受限流规则影响。
    示例

    geo $limit {  
        default 1;  
        192.168.1.0/24 0;  
    }  
    map $limit $limit_key {  
        0 "";  
        1 $binary_remote_addr;  
    }  
    limit_req_zone $limit_key zone=white_limit:10m rate=5r/s;  
    

配置后需通过sudo nginx -s reload重新加载配置生效。可根据实际需求调整参数,如rateburstzone大小等。

0