Nginx学习笔记——请求限制

请求限制

(1)连接频率限制:limit_conn_module
(2)请求频率限制:limit_req_module

配置语法

连接限制配置语法

Syntax:limit_conn_zone key zone=name:size;
Default:默认无
Context:http
name:空间名字,size:空间大小

并发数量
Syntax:limit_conn zone number;
Default:默认无
Context:http,server,location
zone应该是上面的zone配置的名字

测试

/etc/nginx/conf.d/default.conf

    limit_conn_zone $binary_remote_addr zone=conn_zone:1m;
    limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;
server {
	#..............
    location / {
        root   /opt/app/code;
	#limit_conn conn_zone 1;
	#limit_req zone=req_zone burst=3 nodelay;
	#limit_req zone=req_zone burst=3;
	#limit_req zone=req_zone;
        index  index.html index.htm;
    }
	# ...................
}

使用ab -n 20 -c 20 http://192.168.174.132/1.html进行压力测试。
在这里插入图片描述
使用limit_req zone=req_zone;,测试发现20个请求,失败了19个。
在这里插入图片描述
使用limit_req zone=req_zone burst=3 nodelay;,测试发现20个请求,失败了16个(相比上面的结果,有三个是非延时建立请求)。
在这里插入图片描述
使用limit_req zone=req_zone burst=3;,测试发现20个请求,失败了16个(相比上面的结果,有三个是延时建立请求,阻塞时的请求,一秒1个,故大约消耗3秒)。

请求限制配置语法

Syntax:limit_req_zone key zone=name:size rate=rate;
Default:默认无
Context:http

Syntax:limit_req_zone zone=name [burst=number] [nodelay];
Default:默认无
Context:http,server,location
注:burst表示后续响应的个数,nodelay表示是否延时。

测试

使用limit_conn conn_zone 1;,测试发现20个连接,失败了0个(猜测:连接可以建立在一个请求上,所以并发程度高)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值