千家信息网

nginx怎么使用内置模块配置限速限流

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"nginx怎么使用内置模块配置限速限流"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"nginx怎么使用内置模块配置限速限流"文章能帮助大家解
千家信息网最后更新 2026年11月01日nginx怎么使用内置模块配置限速限流

这篇文章主要介绍"nginx怎么使用内置模块配置限速限流"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"nginx怎么使用内置模块配置限速限流"文章能帮助大家解决问题。

有时候 NGINX 面对一些特殊的场景时,需要进行一定的限速限流的配置,比如一个官网,可能前端静态文件是非常小的,但是同时配置的还有一些 apk 包,这些包如果不做任何限制,可能会形成比较大的负载或者带宽的压力,我这边碰到了,今天就来针对这个问题处理一下。

没有限制之前,对应的包下载速度如下:

添加如下配置,进行一定的限制:

http {    ...#省略    limit_conn_zone $binary_remote_addr zone=addr:10m;    ...#省略}server {    listen 80 default;    server_name localhost;    location ~ "^/test/app/" {         limit_conn addr 6;        limit_rate_after 10m;        limit_rate 1200k;        limit_conn_status 499;        limit_conn_log_level warn;        root  /app;    }}

说明:

http 区域,我这里使用的是 1.15 版本的,默认已经安装了对应的模块ngx_http_limit_conn_module。

limit_conn_zone:是一个固定的名称,下边调用的时候与之对应。 $binary_remote_addr:表示通过

remote_addr 这个标识来做限制,"binary_" 的目的是缩写内存占用量,是限制同一客户端 ip 地址。

zone=addr:10m:示生成一个大小为 10M,名字为 addr 的内存区域,用来存储访问的频次信息。

server 区域,可以直接写在 server 区域内,表示限制所有,也可以写到对应的 location 当中,以表示单独区域限制。

limit_conn:表示单个 IP 限制最大连接数为 6。 limit_rate_after:表示请求前 10m 大小时不限速。

limit_rate:表示单个连接最大连接带宽限制为 1200k。 limit_conn_status:设置拒绝请求的返回值。值只能设置400 到 599 之间(默认是 503)。 limit_conn_log_level:定义日志级别,默认 error。

现在简单的做一下测试看看下载速度:

可以看到对应的速度已经收到限制,而且是在 10M 之后速度开始慢慢下降,直至达到限制的位置。现在可以简单压测看下情况:

$ ab -n 10 -c 10 http://www.test.com/res/app/app-xiaomi-release.apk

这条命令表示请求 10 次对应资源,并发为 10。监控对应日志,看到如下结果,因为我们定义的最大并发是 6,所以将会有 4 个失败,并返回 499 状态码,然后有 6 个成功。

$tailf -n 100 a |awk -F "," '{print  $6}'"response": "499""response": "499""response": "499""response": "499""response": "200""response": "200""response": "200""response": "200""response": "200""response": "200"

另外在压测命令之后,还有一些输出可以参考:

Total transferred:      403483116 bytesHTML transferred:       403481400 bytesRequests per second:    0.18 [#/sec] (mean)Time per request:       56865.501 [ms] (mean)Time per request:       5686.550 [ms] (mean, across all concurrent requests)Transfer rate:          6929.10 [Kbytes/sec] received

其他的不说了,只看最后一条,可以看到总的对外输出是大约7M/s,正好符合单条限制 1.2M/s 乘以 6 的数值。

关于"nginx怎么使用内置模块配置限速限流"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

限制 配置 限速 区域 模块 速度 最大 知识 内存 单个 命令 大小 带宽 日志 行业 问题 输出 不同 特殊 之间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 江苏根荣互联网科技 涨乐互联网科技 科技制造互联网公司 广州宏创互联网科技 郑州华宇互联网科技 掌上梦互联网科技 上海电发互联网科技有限公司 安控科技rtu产品工业互联网 成都玖崟互联网科技有限公司乐商圈怎么样 互联网教育科技公司vipkid 常德市电业局互联网科技部 米聚互联网科技南京有限公司排面 互联网科技人工智能实验室 畅思互联网科技 企晟互联网信息科技有限公司 科技赋能视角下互联网保险发展 工业互联网山东科技大学 张召忠谈中国互联网科技 中国科技和美国互联网 山东特亿宝互联网科技有限公司 平安科技 互联网 互联网科技股票 中国互联网有什么科技含量 欧洲十大科技互联网公司 互联网经济与金融科技 玉溪互联网科技怎么选 华夏恒生科技与互联网科技 上海乐五互联网科技有限公司 科技互联网专业务虚会材料
0