nginx的限速和限制并发连接数、限制请求数

news/2024/12/2 20:27:28/

nginx的限速和限制并发连接数、限制请求数

  1. 限速(Rate Limiting): 限速允许你控制对服务器的请求速率,以防止过多的请求影响服务器性能。使用 limit_req_zone 指令定义一个共享内存区域,并在 location 块中使用 limit_req 指令来限制请求速率。

    示例配置:

    nginxCopy codehttp {# 基于客户机的IP地址,每秒产生一个通行证(令牌通算法)limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;server {location / {# 限制请求速率,最多同时一个IP发起5次请求limit_req zone=one burst=5;# 限制文件下载速度为10k/slimit_rate 10k;# 当文件下载速度达到100k/s时限制他# 1m就是1M/slimit_rate_after 100k;...}}
    }
    

    在上述配置中,每秒钟只允许一个请求,并且允许突发(burst)5个请求。这可以有效地限制请求的速率。

    请求报错状态码为503

  2. 限制并发连接数(Limit Connections): 通过限制同时连接到服务器的客户端数量,可以防止服务器过载。使用 limit_conn_zone 指令定义一个共享内存区域,并在 location 块中使用 limit_conn 指令来限制并发连接数。

    示例配置:

    nginxCopy codehttp {# 名为addr,在内存中开辟一个10M的空间来存放用户的连接信息(基于IP)limit_conn_zone $binary_remote_addr zone=addr:10m;# 基于server(服务器域名)limit_conn_zone $server_name zone=perserver:10m;server {location / {# 限制一个IP地址只能同时发起5个并发链接limit_conn addr 5;# 限制一个月拟主机同时只能发起100个并发连接limit_conn perserver 100;...}}
    }
    

    限制并发连接数,报错时的状态码为503

  3. 限制请求数(Limit Requests): 通过限制在一段时间内允许的最大请求数,可以防止服务器被大量请求过载。使用 limit_req_zone 指令定义一个共享内存区域,并在 location 块中使用 limit_req 指令来限制请求数。

    示例配置:

    nginxCopy codehttp {limit_req_zone $binary_remote_addr zone=req_zone:10m rate=10r/s;server {location / {limit_req zone=req_zone burst=20 nodelay;...}}
    }
    

    在上述配置中,每秒钟最多允许10个请求,允许突发(burst)20个请求,nodelay 参数表示不延迟处理请求。


http://www.ppmy.cn/news/1091751.html

相关文章

万物互联:软件与硬件的协同之道

在当今数字化时代,我们身边的一切似乎都与计算机和互联网有关。从智能手机到智能家居设备,从自动驾驶汽车到工业生产线,无论我们走到哪里,都能看到软件和硬件的协同作用。本文将探讨这种协同作用,解释软件和硬件如何相…

oracle数据库常见的优化步骤与脚本

要优化 Oracle 数据库的性能,可以按照以下步骤进行: 1. 性能分析和诊断:首先,使用 Oracle 提供的性能分析工具(如 AWR 报告、ASH 报告)对数据库进行分析和诊断。这些报告可以帮助您确定数据库的性能瓶颈和潜在问题。 2. 优化 SQL 查询语句:针对频繁执行的 SQL 查询语句…

postgresql 安装教程

postgresql 安装教程 本文以window 15版本为教程 文章目录 postgresql 安装教程1.下载地址2.以管理员身份运行3.选择安装路径,点击Next4.选择组件(默认都勾选),点击Next5.选择数据存储路径,点击Next6.设置超级用户的…

浅析自动化测试工具的功能与作用

自动化测试工具是一种软件工具,旨在通过脚本或可视化界面自动执行测试任务和验证预期结果。这些工具可以自动识别和执行测试用例,模拟用户操作,比较实际和预期结果,并生成测试报告。自动化测试工具减少了人工干预,提高…

包管理工具--》npm的配置及使用(二)

在阅读本篇文章前请先阅读包管理工具--》npm的配置及使用(一) 目录 🌟语义版本 避免还原的差异 npm的差异版本处理 🌟npm 脚本 (npm scripts) 🌟运行环境配置 在node中读取package.json …

Chrome扩展开发实战:网页图片抓取,打造专属自己的效率插件

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

C++零碎记录(三)

作者:小王同学在积累 链接:https://www.zhihu.com/question/437657370/answer/1692846096 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 5. 构造函数和析构函数 5.1 构造函数和析构函数的…

RC-u4 相对论大师(bfs求解指定路径)

PTA | 程序设计类实验辅助教学平台 题解&#xff1a; bfs可以求解从根节点到叶子节点的指定路径&#xff0c;这里的vis[]不是为了防止访问到父节点&#xff0c;更多的是为了缩小路径长度&#xff0c;mpp和mp的映射也很巧妙&#xff0c;开始我用的还是map<pair<string,s…