温馨提示×

Nginx如何限制请求频率防止滥用

小樊
95
2025-11-02 22:14:32
栏目: 编程语言

Nginx可以通过配置限速模块(ngx_http_limit_req_module)来限制请求频率,以防止滥用。以下是配置限速的基本步骤:

  1. 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/your_domain.conf

  2. httpserverlocation块中,引入限速模块。在http块中设置全局限速,在serverlocation块中设置特定路径的限速。

    http块中添加:

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

    serverlocation块中添加:

    server {
        ...
        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。

  3. 在需要限制请求频率的serverlocation块中,添加limit_req指令:

    server {
        ...
        location / {
            ...
            limit_req zone=mylimit burst=5 nodelay;
            ...
        }
    }
    

    这里,burst=5表示允许短时间内的突发请求达到5个,nodelay表示不对请求进行延迟处理。

  4. 保存配置文件并重启Nginx服务:

    sudo nginx -t      # 检查配置文件语法是否正确
    sudo nginx -s reload  # 重新加载配置文件
    

现在,Nginx已经根据配置限制了请求频率,防止滥用。请根据实际需求调整限速参数。

0