Nginx-请求限制

现在的 http 协议支持在一次连接上建立多次请求,于是就有了请求限制和连接限制
http1.1 支持顺序性 tcp 复用,到了2.0支持多路tcp复用。

limit_conn_module,连接频率限制

配置语法:

Syntax: limit_conn_zone key zone=name:size;

Default: -

Context: http
复制代码
Syntax: limit_conn name number;

Default: -

Context: http,server,location
复制代码

示例:


http {
    ...
    
    limit_conn_zone $binary_remote_addr zone=conn_zone:1m;
    
    // conn_zone 是自定义的变量
    // $binary_remtoe_addr 表示客户端地址,放在这里表示通过客户端地址限制请求次数。$binary_remote_addr$remote_addr 节省空间。
    
    
    
    server {
        ...
        
        limit_conn conn_zone 1;
        // 限制同一个 IP 同时只能有一个连接。
        // 同时只能有一个连接的意思不是同时只能有一个请求,一个连接可以有多个请求
        
        location / {
            root   html;
            index  index.html index.htm;
        }
    }


}
复制代码

limit_req_module,请求频率限制

配置语法:

Syntax: limit_req_zone key zone=name:size rate=rate;

Default: -

Context:http
复制代码
Syntax: limit_req zone=name [burst=number][nodelay];

Default: -

Context: http,server,location
复制代码

示例:

http {
    ...
    
    limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;
    // 表示对同一个 IP 限制每秒请求一次。
    
    // $binary_remtoe_addr 表示客户端地址,放在这里表示通过客户端地址限制请求次数。$binary_remote_addr$remote_addr 节省空间。
    // 1m 表示 zone 的大小
    // zone=req_zone 表示 zone 的名字
    // rate=1r/s 表示每秒一次请求
    
    server {
        ...
        
        limit_req zone=req_zone;
        // 在这个 server 下的所有 location 使用 req_one 的限制,每秒只能请求一次。
        
        limit_req zone=req_zone burst=3 nodelay;
        // burst=3 表示达到限制之后有3个会到下一秒执行,对客户端访问限速
        // nodelay 是不等待直接返回 503 等
        
        location / {
            root   html;
            index  index.html index.htm;
        }
    }


}

复制代码

转载于:https://juejin.im/post/5c8d0a775188253dff1afe08

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值