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中break与last的区别详析
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
Apache POI的基本使用详解
Nov 07 Servers
使用 Apache 反向代理的设置技巧
Jan 18 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
tomcat下部署jenkins的方法
May 06 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
设置IIS Express并发数
Jul 07 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
Apache自带的ab压力测试工具的实现
Jul 23 Servers
服务器nginx权限被拒绝解决案例
Sep 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
PHP的开发框架的现状和展望
2007/03/16 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
JS跨域总结
2012/08/30 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
js实现3D旋转相册
2020/08/02 Javascript
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
深入浅析Python字符编码
2015/11/12 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
使用pip安装python库的多种方式
2019/07/31 Python
如何通过python实现人脸识别验证
2020/01/17 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
学生保证书
2015/01/16 职场文书
乱世佳人观后感
2015/06/08 职场文书
活动宣传稿范文
2015/07/23 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers