1. 首页 > 快讯

高效 Nginx 限流策略详解

[[412695]]

概述

1. limit_conn_zone2、limit_req_zone3、ngx_http_upstream_module 这里简单介绍一下前两个:

limit_conn_zone

nginx配置

其中“limit_conn one 10”可以放在服务器层,对整个服务器有效,也可以放在位置,只对单个位置有效。

该配置表示客户端的并发连接数只能为10个。

结果ab tool 20并发请求nginx,可以看到Complete requests: 20Failed requests: 9(因为nginx配置中某个IP的并发连接数是10,所以结果中成功数+1的原因是未知;在nginx日志中也可以看到9个请求返回了503)

limit_req_zone

nginx配置

其中,“limit_req zone=req_oneburst=120”可以放在服务器层,对整个服务器有效,也可以放在位置,只对单个位置有效。

rate=1r/s 表示每个地址每秒只能请求一次,也就是说令牌桶burst=120总共有120个令牌,每秒只添加1个新令牌,120个令牌发送后,额外的请求将返回503。

ngx_http_upstream_module

介绍作为一款优秀的负载均衡模块,也是目前我工作中使用最多的一个。其实这个模块提供了我们需要的后端限流功能。根据官方文档,这个模块有一个参数:max_conns,可以限制服务器的流量。不幸的是,它只能在商业版本的nginx中使用。不过在nginx1.11.5版本之后,官方已经把这个参数从商业版本中分离出来了,这意味着我们只要升级生产中广泛使用的nginx1.9.12版本和1.10版本就可以使用了(可以看到经测试,在旧版本的nginx中,如果添加该参数,nginx服务无法启动)。

配置

结果(不便截图)使用两台机器,使用ab工具向nginx发送20、30、40个并发请求:

可以看到,无论有多少个并发请求,成功的请求都只有12个,成功的数量就会多出2个。同时1.2的测试结果成功次数也+1。这里有两台机器。基于这样的考虑,机器增加到了三台,果然,成功的数量是13。这里有一个假设:请求成功的数量会根据客户端的+1而+1(这只是一个假设)

注意:还有一些更重要的点。 max_conns是针对上游的单个服务器,而不是全部; nginx有一个参数:worker_processes,max_conns是针对每个worker_processes的;

文章到此结束,如果本次分享的高效 Nginx 限流策略详解和的问题解决了您的问题,那么我们由衷的感到高兴!

用户评论

迁心

终于找到一篇详细讲解 Nginx 限流的文章了!感觉以后遇到这种情况就能更轻松应对

    有10位网友表示赞同!

最迷人的危险

一直在想怎么优化服务器压力,这个限流方案看起来很有帮助啊

    有10位网友表示赞同!

南宫沐风

需要学习一下Nginx 的限流机制,之前没怎么接触过这些概念

    有15位网友表示赞同!

旧事酒浓

分享下你具体用到的限流方法,我看了一下,有很多种实现方式呢

    有5位网友表示赞同!

麝香味

这篇分析非常详细,我读完后感觉对 Nginx 限流有了更深刻的理解

    有6位网友表示赞同!

余温散尽ぺ

我的网站最近访问量有点大,Nginx 限流方案正好能帮我解决一下问题

    有5位网友表示赞同!

独角戏°

这篇文章简直太棒了,对于新手来说,解释很清楚

    有18位网友表示赞同!

放肆丶小侽人

我觉得这篇分析很有价值,可以帮助很多网站管理员更好地管理资源

    有6位网友表示赞同!

执笔画眉

之前试过一些限流方法,效果都不太好,看来需要研究一下 Nginx 的方案

    有20位网友表示赞同!

心脏偷懒

终于找到了解决服务器压力overload的问题的方法!谢谢分享

    有12位网友表示赞同!

巴黎盛开的樱花

我想学习Nginx 限流的具体代码实现,这篇文档能给我很多帮助吗?

    有10位网友表示赞同!

爱情的过失

我比较感兴趣的是 Nginx 使用限流模块时的配置方法,可以详细解释一下吗?

    有18位网友表示赞同!

凉笙墨染

看了分析后发现,限流不仅仅是为了保护服务器,还可以提高用户体验

    有13位网友表示赞同!

关于道别

这篇文档太棒了,以后遇到网站流量暴增的时候就来参考这个问题的方案了

    有9位网友表示赞同!

一别经年

分享下你用哪个版本的操作系统和 Nginx 稳定运行这个限流方案?

    有8位网友表示赞同!

青山暮雪

我想了解一下不同类型的限流算法的优缺点,这篇文档提到过吗?

    有17位网友表示赞同!

隔壁阿不都

需要实践一下这篇文档的方法,测试下效果怎么样

    有12位网友表示赞同!

致命伤

感谢作者分享如此有用的资源!这篇文章可以帮助我更好地维护网站

    有11位网友表示赞同!

忘故

我还想知道 Nginx 限流方案的安全性如何保证,能提供一些建议吗?

    有15位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6802.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666