nginx php 长轮询 连接数 阻塞,nginx那些限速限连接数相关的设置

花时间重新梳理了一下,不同的时候,阅读就有不同的体会.

http段limit_req_zone $binary_remote_addr zone=one:10m rate=15r/s;

limit_conn_zone $binary_remote_addr zone=perip:10m;

limit_conn_zone $server_name zone=perserver:10m;

service 段limit_req zone=one burst=5 nodelay;

limit_conn perip 20;

limit_conn perserver 5000;

limit_rate 100k;

关于

limit_req_zone $binary_remote_addr zone=one:10m rate=15r/s;

速度可以设置为用户每秒处理请求数和每分钟处理请求数,其值必须是整数,所以如果你需要指定每秒处理少于1个的请求,2秒处理一个请求,可

以使用 “30r/m”limit_req_zone $binary_remote_addr zone=one:10m rate=15r/s;

server {

location /www.abc.com/ {

limit_req zone=one;

#limit_req zone=one burst=5;

#limit_req zone=one burst=5 nodelay;

}

}

配置段: http, server, location

限制平均每秒不超过15个请求,同时允许超过频率限制的请求数不多于5个。(最多允许5个请求排队)

如果不希望超过的请求被延迟,可以用nodelay参数,如果没有nodelay参数,那么最多burst个excessive请求则按rate参数规定的速率延迟发送给后

端。如果有nodelay参数,则表示这些excessive请求会立马发送给后端。所以这种情况下,后端请求到达的速率可能不止rate这么多。

limit_req zone=one burst=5 nodelay;

limit_req zone=one; 严格限制发送给Tomcat端请求的速率是一秒一个,多的立即503返回。

limit_req zone=one burst=5; 严格限制发送给Tomcat端请求的速率也是一秒一个,nginx会缓存5个excessive请求,按rate指定的速率,

一秒一个发给Tomcat。因此日志中这三个请求在37s、38s、39s、40s被处理,第一个请求与被503快速返回的请求处理时间点32s刚好差5s的接口响

应时间。

limit_req zone=one burst=5 nodelay; 五个请求有6个被接收处理了,多的两个按503返回了。这被处理的三个请求,第一个是按rate规定

发送给Tomcat,剩下5个属于excessive请求,在nodelay参数作用下,与第一个请求一起一并发给Tomcat。因此几乎同时到达Tomcat的请求有四个!

limit_conn perip 20;

limit_conn perserver 5000;

limit_rate 100k;

补充说明下参数:

$binary_remote_addr是限制同一客户端ip地址;

$server_name是限制同一server最大并发数;

limit_conn为限制并发连接数;

limit_rate为限制下载速度;

非特殊说明,本博所有文章均为博主原创。

最新文章

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值