Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何限制 Nginx下载速率?

如何限制 Nginx下载速率?

作者头像
用户1560186
发布于 2019-12-04 11:39:35
发布于 2019-12-04 11:39:35
8.4K00
代码可运行
举报
文章被收录于专栏:运维录运维录
运行总次数:0
代码可运行

默认情况下你的服务器有多少网络带宽(上行),Nginx就能消耗掉多少,来者不拒。

假设你的服务商为你的服务器提供 10Mbit/s上下行对等的网络带宽,你希望通过HTTP方式从你的VPS服务器下载2GB的备份文件。

那么你会得到大约 1.25MB/s左右的下载速度(1Byte等于8Bit),这个下载速度确实很爽。

但是这带来了另外一个问题,由于你下载文件占用了VPS服务器全部网络带宽,那么其他用户将无法访问你的服务器,或者访问速度非常缓慢。

你可以把上面的场景替换到公司某些业务上,这样的结果是我们不能接受的,所以需要一种机制,它能够限制每个HTTP连接所使用的最大速率(带宽)。例如将示例中最大下载速度限制在 512KB/s

操作步骤

1. nginx配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /etc/nginx/conf.d/default.conf

server {

    #..其它配置项目省略

    location /download {
        limit_rate 512k;
    }

    #..其它配置项目省略
}

还可以再优化一下,例如 前10MB 不限速,超过则开始限速。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {

    #..其它配置项目省略
    
    location /download {
             limit_rate_after 10240K;
        limit_rate 512k;
    }
}

2. 重启 nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx -t && nginx reload

3. 验证

最大下载速度限制在 512KB/s 以内。

限速相关指令

1. limit_rate 指令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
语法: limit_rate rate;
默认值: limit_rate 0;
使用字段: http, server, location, if in location
功能: 该指令用于限制向客户端传输数据的速度,单位是Byte/s每秒传输的字节数,设置0禁用限制功能。

2. limit_rate_after 指令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
语法: limit_rate_after size;
默认值: limit_rate_after 0;
使用字段: http, server, location, if in location
功能: 该指令用于设置一个阀值,当达到条件(字节)后开始限速。
注意事项

需要注意的是,上面的限制指令只是针对一个连接的设定,如果客户端使用两个连接(并发),那么总速率将会是该指令设置值的两倍。

不过nginx 提供了一个另外一个模块 ngx_http_limit_conn_module 用于限制连接数。

参考文档

http://nginx.org/en/docs/http/ngx_http_core_module.html

http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

小结

最后来总结下文章中的知识点

  • limit_rate 指令用于配置限速功能,单位Byte/s
  • 配合 limit_rate_after指令,可以在触发规则后启用限速功能。
  • 限速功能只能限制单个HTTP连接,可以配合限制连接数模块使用。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx静态资源服务的配置
上面配置中的http、server、location等都是指令块。指令块配置项之后是否如参数(例如 location /),取决于解析这个块配置项的模块。
mazhen
2023/11/24
3.6K0
Nginx静态资源服务的配置
nginx小技巧之实现对客户端限速
在一些高并发的应用场景,有很多人同时在下载文件,考虑到公司的带宽有限,为了避免造成系统崩溃,我们可以限制用户的下载速度。
用户8639654
2021/08/17
6960
Nginx限制访问速率和最大并发连接数模块--limit (防止DDOS攻击)
具体连接请参考 http://tengine.taobao.org/document_cn/http_limit_req_cn.html
拓荒者
2019/03/15
4.7K0
nginx 如何限制访问频率,下载速率和并发连接数
ngx_http_limit_req_module 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 “leaky bucket” ngx_http_limit_conn_module 用来限制同一时间连接数,即并发限制 limit_rate和limit_rate_after 下载速度设置
Linux运维技术之路
2022/06/07
3.9K0
nginx 如何限制访问频率,下载速率和并发连接数
Nginx限速指令limit_rate完成带宽控制
Nginx的http核心模块ngx_http_core_module中提供limit_rate指令可以用于控制速度,limit_rate_after用于设置http请求传输多少字节后开始限速。
子润先生
2021/06/24
9500
Nginx如何配置网络防攻击策略(DDoS)
DDoS:Distributed Denial of Service,即分布式拒绝服务攻击。借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
一个风轻云淡
2024/07/19
5750
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
Nginx ,是一个 Web 服务器和反向代理服务器用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。
HaC
2020/12/09
1.5K0
nginx限速,带宽,IP;
限制向客户端传送响应数据的速度,可以用来限制客户端的下载速度。参数rate的单位是字节/秒,0为关闭限速。
拓荒者
2019/03/15
7.6K0
nginx限速,带宽,IP;
nginx limit配置参数解读
解析一下ngx_http_core_module、ngx_http_limit_conn_module以及ngx_http_limit_req_module中的limit相关配置参数。
拓荒者
2019/03/15
1.1K0
Nginx之客户并发数限制解读
在我们进行系统开发设计中,要考虑服务器流量异常,负载过大等问题。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,并发数进行限制。
一个风轻云淡
2023/09/28
1.9K0
Nginx限制访问频率、下载速率和并发连接数教程
Nginx是一款常用的网站管理程序,在Windows系统服务器和Linux系统服务器中都可以安装。在Nginx使用过程中,为了避免一些网站占用过多资源,出现分配不均的现象,就需要限制访问频率、下载速率和并发连接数。下面是具体教程:
会长君
2023/04/26
4K0
Nginx限制并发连接数与下载速度
ngx_http_limit_conn_module模块用于限制每个定义密钥的连接数,特别是来自单个IP地址的连接数。而ngx_http_core_module则可以限制下载速度,这两个均是Nginx内置模块,不需要额外安装。
星哥玩云
2022/08/13
3.5K0
Nginx限制并发连接数与下载速度
Nginx 限流模块
【转载请注明出处】:https://cloud.tencent.com/developer/article/1623156
后端老鸟
2020/05/02
1.5K0
Nginx 限流模块
Nginx 配置对流量、连接和请求的限制
  limit_rate开启nginx限速功能,可配置在http、server、location和if in location配置段。 limit_rate 500k表示限速500kB每秒,限速对象是单个连接,因此如果一个IP有多个连接的话,每个连接都是限速500k。limit_rate还有在特定情况下开启限速的功能。
拓荒者
2019/03/15
2.8K0
Nginx 配置对流量、连接和请求的限制
如何改进 NGINX 配置文件节省带宽?
如您所知,用于在现代网站上构建页面的HTML,CSS和JavaScript文件可能非常庞大。在大多数情况下,Web服务器可以即时压缩这些和其他文本文件,以节省网络带宽。
Tinywan
2020/05/12
1.2K0
Nginx如何限制每秒请求次数,限制每秒连接次数,下载速度限制?
Nginx是一款常用的高性能Web服务器和反向代理服务器,其优秀的性能和可扩展性使得它广泛应用于各种网络应用和场景中。在实际使用过程中,为了保障系统的稳定性和安全性,需要对Nginx进行一定的配置和优化。其中,限制每秒请求次数、限制每秒连接次数和下载速度限制等技术是非常重要的配置项之一。
网络技术联盟站
2023/06/08
6.4K0
Nginx如何限制每秒请求次数,限制每秒连接次数,下载速度限制?
Nginx的字节级限速原理
有同学反馈:在配置Nginx四层限速时,proxy_upload_rate和proxy_download_rate有一定的概率不生效。我按照他的步骤也能复现,但这与官方Nginx很稳定(相对其他开源软件)的印象并不相符,是不是Nginx的官方BUG呢?这里的真实原因,其实是Nginx字节限速机制与时间更新频率的协商导致的,这篇文章我们就来研究下Nginx的字节限速。
陶辉
2023/10/18
7760
Nginx的字节级限速原理
006.Nginx访问控制
HTTP是建立在TCP, 一次HTTP请求需要先建立TCP三次握手(称为TCP连接),在连接的基础上再进行HTTP请求。
木二
2020/07/13
9490
Nginx实用模块
Nginx 是一个很强大的高性能Web和反向代理应用。原先一直停留在apt install nginx 的阶段,直到开始深入了解其模块等,才发现:nginx厉害!!nginx除了基础功能以外还有很多有趣且实用的模块。因为nginx内置了许多变量(http://nginx.org/en/docs/varindex.html 部分是模块实现)、逻辑运算、指令,组合起来,就可以实现强大的功能。
yumusb
2020/04/22
9830
【Nginx10】Nginx学习:HTTP核心模块(七)请求体及请求限流
对于一个请求来说,请求行、请求头、请求体共同构成了它的整体。不过如果仅仅是 GET 请求的话,其实一般会忽略掉请求体。但是,现在大部分的伪 RESTful 开发风格,基本上已经变成了全部都是 POST 的天下了。特别是小型公司,不管前后端分离还是小程序、APP,一套 POST 走天下。
硬核项目经理
2023/08/09
1.2K0
【Nginx10】Nginx学习:HTTP核心模块(七)请求体及请求限流
相关推荐
Nginx静态资源服务的配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验