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常用配置conf的示例代码详解
Mar 21 Servers
Nginx动静分离配置实现与说明
Apr 07 Servers
配置nginx负载均衡
May 06 Servers
Nginx HTTP跳转至HTTPS
May 15 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
nginx之queue的具体使用
Jun 28 Servers
Docker部署Mysql8的实现步骤
Jul 07 Servers
Docker安装MySql8并远程访问的实现
Jul 07 Servers
nginx访问报403错误的几种情况详解
Jul 23 Servers
win7配置本地ftp服务器的图文教程
Aug 05 Servers
Windows server 2016服务器基本设置
Aug 14 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
社区(php&&mysql)四
2006/10/09 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
jQuery技巧总结
2011/01/01 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
微信小程序自定义单项选择器样式
2019/07/25 Javascript
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
python如何实现内容写在图片上
2018/03/23 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
自动化系在校本科生求职信
2013/10/23 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
节约电力资源的建议书
2014/03/12 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python