当前位置: 首页 > news >正文

nginx中的limit_req 和 limit_conn

在 Nginx 中,limit_req 和 limit_conn 是两个用于限制客户端请求的指令,它们分别用于限制请求速率和并发连接数。
limit_req
limit_req 用于限制请求速率,防止客户端发送过多请求影响服务器性能。它通过 limit_req_zone 指令定义一个共享内存区域,用于存储请求的状态信息,然后在 location 块中使用 limit_req 指令来限制请求速率。
limit_req_zone:定义一个共享内存区域,用于存储请求的状态信息。

http {
    limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;
}

$binary_remote_addr:使用客户端的 IP 地址作为键。
zone=req_zone:10m:定义一个名为 req_zone 的共享内存区域,大小为 10MB。
rate=1r/s:设置速率限制为每秒 1 个请求。

limit_req:在 location 块中应用请求速率限制

server {
    location / {
        limit_req zone=req_zone burst=5 nodelay;
    }
}

zone=req_zone:指定使用之前定义的共享内存区域 req_zone。
burst=5:允许最多 5 个突发请求。
nodelay:不延迟处理突发请求。

limit_conn
limit_conn 用于限制并发连接数,防止客户端占用过多服务器资源。它通过 limit_conn_zone 指令定义一个共享内存区域,然后在 location 块中使用 limit_conn 指令来限制并发连接数。
limit_conn_zone:定义一个共享内存区域,用于存储连接的状态信息。

http {
    limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
}

$binary_remote_addr:使用客户端的 IP 地址作为键。
zone=conn_zone:10m:定义一个名为 conn_zone 的共享内存区域,大小为 10MB。

limit_conn:在 location 块中应用并发连接数限制。

server {
    location / {
        limit_conn conn_zone 5;
    }
}

总结
limit_req:用于限制请求速率,防止过多请求影响服务器性能。
limit_conn:用于限制并发连接数,防止客户端占用过多服务器资源。

http://www.dtcms.com/a/115042.html

相关文章:

  • WPS宏开发手册——常见问题
  • MySQL基础 [三] - 数据类型
  • Java 大视界 -- Java 大数据在航天遥测数据分析中的技术突破与应用(177)
  • 记录clickhouse记录一次性能优化,从60s到1s
  • JavaScript创建对象与构造函数
  • TPM/HSM/TEE差异分析
  • 浏览器 路由详解
  • c++最小二乘法
  • Lucene.Net 分词器选择指南:盘古分词 vs 结巴分词
  • Spring 执行流程(源码)
  • dmsetup 清理ceph osd残留磁盘分区
  • 项目总结之常问的一些问题
  • Day16——路由2
  • 深入探究C++ 运算符重载:以日期类为例
  • 如何使用 DrissionPage 进行网页自动化和爬取
  • AI时代的机会:实现阶级跨越
  • 中医五行音乐养生
  • 【最新版】金媒婚恋系统v10.5最新稳定开源+原生前端小程序 PC端+安装教程
  • Visual Studio Code SSH 连接超时对策( keep SSH alive)
  • 【Gorm】连接到数据库
  • 牛客周赛———字符串
  • PHP Cookie
  • 深入理解MySQL:核心特性、优化与实践指南
  • TDengine 从入门到精通(2万字长文)
  • 【C++】list模拟实现
  • MyBatis-Flex关联查询
  • 数字内容体验案例分析的核心指标是什么?
  • 【学Rust写CAD】33 近似 Alpha 混合函数(argb.rs补充方法)
  • 人大金仓数据库dum文件进行备份数据和恢复数据
  • 微前端随笔