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域名转发https访问的实现
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
nginx的zabbix 5.0安装部署的方法步骤
Jul 16 Servers
Nginx图片服务器配置之后图片访问404的问题解决
Mar 21 Servers
Tomcat弱口令复现及利用
May 06 Servers
Nginx限流和黑名单配置
May 20 Servers
zabbix配置nginx监控的实现
May 25 Servers
Windows10安装Apache2.4的方法步骤
Jun 25 Servers
git stash(储藏)的用法总结
Jun 25 Servers
nginx之queue的具体使用
Jun 28 Servers
Docker部署Mysql8的实现步骤
Jul 07 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
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中的一个中文字符串截取函数
2007/02/14 PHP
php仿discuz分页效果代码
2008/10/02 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
php上传大文件设置方法
2016/04/14 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
自己的js工具 Cookie 封装
2009/08/21 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python range实例用法分享
2020/02/06 Python
Python3如何判断三角形的类型
2020/04/12 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
一个C/C++编程面试题
2013/11/10 面试题
市场营销求职信范文
2014/02/21 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
环境卫生整治简报
2015/07/20 职场文书
《穷人》教学反思
2016/02/19 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
Java 在生活中的 10 大应用
2021/11/02 Java/Android
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript