当前位置: 首页 > 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:用于限制并发连接数,防止客户端占用过多服务器资源。

相关文章:

  • 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】连接到数据库
  • 网站建设规范管理工作/西安网站seo价格
  • php网站的后台地址/百度指数大数据分享平台
  • 哈尔滨 建网站/培训心得体会100字
  • 做自媒体要知道的网站/软文写作范文
  • 眉县住房和城乡建设局网站/网络平台销售
  • 计算机上网题的模拟网站怎么做/上海培训机构排名榜