主机租用网提供各类云主机信息

Nginx服务器限速功能(二)

定义有两个部分: zone= keyword标识的区域名称和冒号后面的大小。 大约16,000个IP地址的状态信息需要1兆字节,所以我们的区域可以存储大约160,000个地址。

如果Nginx需要添加一个新条目时,存储空间将被耗尽,它将删除最旧的条目。

如果释放的空间不足以容纳新记录,则Nginx返回状态码503(Temporarily Unavailable) 。 此外,为了防止内存耗尽,每当Nginx创建一个新条目时,最多可以删除两个在前60秒内没有使用的条目。

Rate – 设置最大请求率。 在这个例子中,速率不能超过每秒10个请求。 Nginx实际上以毫秒粒度跟踪请求,所以这个限制对应于每100毫秒1个请求。 由于我们不允许爆发,这意味着如果请求在前一个允许的时间之后小于100毫秒时被拒绝。

limit_req_zone指令为速率限制和共享内存区域设置参数,但实际上并不限制请求速率。   因此,您需要通过在其中包含limit_req指令来将限制应用于特定location或server块。 在这个例子中,我们是对/login/的URI速率限制请求。

因此,现在每个唯一的IP地址被限制,/login/每秒10个请求 – 或者更确切地说,在前一个100毫秒内不能请求该URL。   处理并发   如果我们在100毫秒内得到两个请求会怎么样? 对于第二个请求,Nginx将状态码503返回给客户端。 这可能不是我们想要的,因为应用程序本质上是突发性的。   相反,我们想要缓冲任何多余的请求并及时提供服务。 这是我们使用burst参数limit_req ,在这个更新的配置:

burst参数定义了客户端可以超过区域指定的速率(使用我们的示例mylimit区域,速率限制为每秒10个请求,或每100毫秒1个)可以产生多少个请求。

在前一个请求到达100毫秒后的请求被放入一个队列中,这里我们将队列大小设置为20。   这意味着如果21个请求同时从一个给定的IP地址到达,Nginx立即将第一个请求转发到上游服务器组,并将剩下的20个放入队列中。 然后,它每100毫秒转发一个排队的请求,并且只有当传入的请求使排队请求的数量超过20时才返回503给客户端。

无延迟队列   具有burst的配置会导致流量畅通,但不是很实用,因为它可能会使您的网站显得很慢。

主机租用网提供Nginx服务器限速功能(二)的介绍,如需了解云主机资讯,请关注主机资讯栏目。我们为大家准备云主机租用相关资讯、知识介绍。

赞(0)
未经允许不得转载:主机租用网 » Nginx服务器限速功能(二)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!