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 相关文章推荐
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
Mar 09 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
解析在浏览器地址栏输入一个URL后发生了什么
Jun 21 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
Nginx缓存设置案例详解
Sep 15 Servers
nginx配置之并发频次限制
Apr 18 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
nginx之内存池的实现
Jun 28 Servers
Linux中各个目录的作用与内容
Jun 28 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
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
session 的生命周期是多长
2006/10/09 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
<script defer> defer 是什么意思
2009/05/10 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
python抓取网页内容示例分享
2014/02/24 Python
Python 中的lambda函数介绍
2018/10/10 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
Python内置函数locals和globals对比
2020/04/28 Python
python语言的优势是什么
2020/06/17 Python
python实现自动打卡的示例代码
2020/10/10 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
canvas烟花特效锦集
2018/01/17 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
小学音乐教学反思
2014/02/05 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
企业宣传语大全
2015/07/13 职场文书
创业计划书之面包店
2019/09/12 职场文书
python运行脚本文件的三种方法实例
2022/06/25 Python