nginx限制并发连接请求数的方法


Posted in Servers onApril 01, 2021

简介

限制并发连接数的模块为:http_limit_conn_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

限制并发请求数的模块为:http_limit_req_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

这两个模块都是默认编译进Nginx中的。

限制并发连接数

示例配置:

http {
	limit_conn_zone $binary_remote_addr zone=addr:10m;
  #limit_conn_zone $server_name zone=perserver:10m;
  
  server {
    limit_conn addr 1;
    limit_conn_log_level warn;
    limit_conn_status 503;
  }
}

limit_conn_zone key zone=name:size; 定义并发连接的配置

  • 可定义的模块为http模块。
  • key关键字是根据什么变量来限制连接数,示例中有binary_remote_addr、$server_name,根据实际业务需求。
  • zone定义配置名称和最大共享内存,若占用的内存超过最大共享内存,则服务器返回错误

示例中的$binary_remote_addr是二进制的用户地址,用二进制来节省字节数,减少占用共享内存的大小。

limit_conn zone number; 并发连接限制

  • 可定义模块为http、server、location模块
  • zone为指定使用哪个limit_conn_zone配置
  • number为限制连接数,示例配置中限制为 1 个连接。

limit_conn_log_level info | notice | warn | error ; 限制发生时的日志级别

  • 可定义模块为http、server、location模块

limit_conn_status code; 限制发生时的返回错误码,默认503

  • 可定义模块为http、server、location模块

限制并发请求数

limit_req_zone key zone=name:size rate=rate; 定义限制并发请求的配置。

  • 若占用的内存超过最大共享内存,则服务器返回错误响应
  • rate定义的是请求速率,如10r/s 每秒传递10个请求,10r/m 每分钟传递10个请求

limit_req zone=name [burst=number] [nodelay | delay=number];

  • zone 定义使用哪个 limit_req_zone配置
  • burst=number 设置桶可存放的请求数,就是请求的缓冲区大小
  • nodelay burst桶的请求不再缓冲,直接传递,rate请求速率失效。
  • delay=number 第一次接收请求时,可提前传递number个请求。

limit_req_log_level info | notice | warn | error; 限制发生时的日志级别

  • 可定义模块为http、server、location模块

limit_req_status code;限制发生时的错误码

  • 可定义模块为http、server、location模块

示例配置1

http {
  limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
  limit_req zone=one burst=5;
}

请求速率为每秒传递1个请求。burst桶大小可存放5个请求。超出限制的请求会返回错误。

示例配置2

http {
  limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
  limit_req zone=one burst=5 nodelay;
}

示例配置2是在示例配置1当中添加了nodelay选项。那么rate请求速率则不管用了。会直接传递burst桶中的所有请求。超出限制的请求会返回错误。

示例配置3

http {
  limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
  limit_req zone=one burst=5 delay=3;
}

示例配置3是在示例配置1当中添加了delay=3选项。表示前3个请求会立即传递,然后其他请求会按请求速率传递。超出限制的请求会返回错误。

到此这篇关于nginx限制并发连接请求数的方法的文章就介绍到这了,更多相关nginx限制并发连接请求数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx网站服务如何配置防盗链(推荐)
Mar 31 Servers
apache基于端口创建虚拟主机的示例
Apr 22 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
nginx+lua单机上万并发的实现
May 31 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
nginx作grpc的反向代理踩坑总结
Jul 07 Servers
使用 Apache 反向代理的设置技巧
Jan 18 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
Windows Server 2019 配置远程控制以及管理方法
Apr 28 Servers
docker 制作mysql镜像并自动安装
May 20 Servers
Apache自带的ab压力测试工具的实现
Jul 23 Servers
Nginx已编译的nginx-添加新模块
Nginx下配置Https证书详细过程
详解Nginx启动失败的几种错误处理
Apr 01 #Servers
Nginx 根据URL带的参数转发的实现
Apr 01 #Servers
Nginx Rewrite使用场景及配置方法解析
Nginx解决403 forbidden的完整步骤
Apr 01 #Servers
详解nginx.conf 中 root 目录设置问题
Apr 01 #Servers
You might like
如何去掉文章里的 html 语法
2006/10/09 PHP
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Django缓存系统实现过程解析
2019/08/02 Python
python 修改本地网络配置的方法
2019/08/14 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
歌唱比赛策划方案
2014/06/06 职场文书
求职自我评价参考范文
2019/05/16 职场文书
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python