- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Nginx带宽控制(限速模块使用)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
有个老项目,通过 Squid 提供文件下载功能,利用 delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能.
好消息是 Nginx 提供了 limit_rate 和limit_rate_after,举个例子来说明一下:
大概意思是:用户下载达到 500k 后,便控制其速度在 50k 以内.
。
坏消息是此控制是针对单个连接而言的。换言之,只能限制单个连接的带宽,不能限制总带宽。不过使用limit_conn 模块的话,可以在一定程度上缓解问题:
limit_conn_zone $server_name zone=servers:10m,
。
server { location /download/ { limit_conn servers 1000; limit_rate_after 500k; limit_rate 50k; } } 。
。
通过 limit_conn 限制了并发连接数,于是也就限制了总带宽。可惜这个解决方式并不完美,大家可以设想如下的例子:1000 个用户能够同时以 50k 的速度下载;那么在总带宽不变的情况下,2000 个用户是否能够同时以 25k 的速度下载?从业务的角度看,答案自然是肯定的,可实际上 limit_conn 和 limit_rate 不够灵活,无法简单实现此类逻辑.
当然,问题肯定有办法解决。比如使用第三方模块:limit_speed;还可以使用 Linux 内置的 TC 命令。limit_speed 比较简单,不多说了,接下来我们就看看 TC 的用法吧:
。
TC 复杂的让人发疯,请参考:Linux Advanced Routing & Traffic Control HOWTO.
本文介绍了多个 Nginx 限制访问方面的模块,实际上还有一个 limit_req 模块也超赞,虽然和本文关系不大,但建议大家了解,具体可以参考「nginx limit_req限速设置」.
最后此篇关于Nginx带宽控制(限速模块使用)的文章就讲到这里了,如果你想了解更多关于Nginx带宽控制(限速模块使用)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我担心 Yii2 限速 api? 什么是速率限制 api,为什么使用它? 以下是来自 Yii2 的一些方法 yii 大师能否用简单的话解释一下这些方法,我应该在何时何地在我的 api 中使用速率限制?
我正在使用 Brad Jasper 和 Trevor Lohrbeer (https://github.com/bradjasper/ImportJSON) 的 ImportJSON 库的未修改版本
如果我有一个无限的 while 循环,我怎样才能让循环从循环迭代开始后每 10 分钟运行一次下一次迭代? 如果第一次迭代在凌晨 1:00 开始并在凌晨 1:09 结束,则下一次迭代应在凌晨 1:10
我们有个服务以类似 SideCar 的方式和应用一起运行,SideCar 和应用通过 Unix Domain Socket 进行通讯。为了方便用户,在开发的时候不必在自己的开发环境中跑一个 Si
我想根据运行时确定的某些参数对 Celery 任务进行速率限制。例如:如果参数为 1,则速率限制可能为 100。如果参数为 2,则速率限制可能为 25。此外,我希望能够在运行时修改这些速率限制。 ce
我是一名优秀的程序员,十分优秀!