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 09 Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 Servers
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
制作能在nginx和IIS中使用的ssl证书
Jun 21 Servers
使用nginx配置访问wgcloud的方法
Jun 26 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Linux安装apache服务器的配置过程
Nov 27 Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
教你nginx跳转配置的四种方式
Jul 07 Servers
搭建zabbix监控以及邮件报警的超级详细教学
Jul 15 Servers
解决ubuntu安装软件时,status-code=409报错的问题
Dec 24 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
Discuz! Passport 通行证整合
2008/03/27 PHP
laravel安装和配置教程
2014/10/29 PHP
php的sso单点登录实现方法
2015/01/08 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
python实现2048小游戏
2015/03/30 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
python 如何调用 dubbo 接口
2020/09/24 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
python3判断IP地址的方法
2021/03/04 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
拓展训练激励口号
2014/06/17 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript