00:00
那么已经了解了这个令牌桶算法之后,那接下来呢,我们来看看呃,怎么去对这个带宽啊,去做这个限制了。呃,NG内部在实现这个带宽控制的时候,使用的就是令牌桶算法,相当于每一个请求接进来之后呢,会在桶里边拿走一个牌子啊,然后呢,每一个牌子代表着它能够享受的这个带宽的资源。呃,那这个配置呢,呃,在这个官方文档里面呢,其实就两个配置。我们带着大家来配一下,那首先第一个呢,就是这个,呃,Limit。啊,这个limit rate代表的就是它在呃,请发送请求之后,我们去给它传输速度的这个传输这个文件的时候,它这个速度是多少,它的单位呢?是这个bitt啊,以字节为单位,那它后边也可以跟单位,比如在这写个1K。啊,就是一以1K大小的速度去给你传递数据,那么啊配置完之后呢,我们看看这个效果啊先。
01:04
咱们重启一下。重启完之后,我们在咱们的服务器上放一个稍微大一点的文件啊,看起来呢更明显一些。嗯,在这哦,这已经有一个了,这XSHE是吧,我把名字给他改的。稍微好一点。这样。那我们去发一个请求过去,我们看看啊。然后浏览器,然后。名字复制过来。OK。看是不是正在下载吧。对吧,然后在这呢,能看一下他这个下载速度。大家看。呃。稳定在这个1K左右,对吧,当然它这个传输速度真正是多少,这是。呃,我们服务器端限制的,然后在这显示的时候呢,可能不太准确,这是估算的啊,浏览器在这个这个这个这个速度这块是估是估计预估是多少,然后你如果测试一下不同的浏览器,它可能速度不一样,那有的浏览器呢,显示的速度会稍微快一点,有的浏览器会显示速度稍微慢一点,像有的稍微快一点的浏览器,就是那种比较不要脸的浏览器,它显示它的浏览器下载东西比较快嘛,还有一些浏览器有这个多线程下载的功能。
02:24
呃,它可以呃多个线程同时去下载,那么在这儿啊,我们跟大家说这它是令牌通对吧?啊,那也就是有这个令牌的概念。呃,每一个请每一个这个请求接进来,拿走一个牌子,按照呃1K大小1K的这个速度去传输,呃,这个这个数据对吧,那如果你要是多线程请求呢。啊,也就是有比如有的浏览器,或者有的这个客户端,比如我用一些这个呃迅雷啊或者什么的开启多线程,他每一个接每一个请求接进来都可以拿到一个牌子,然后拿到牌子之后啊,给你1K的速度啊,去这个这个啊下载你想要的文件啊,每一个令牌和这个用户并发的请求,呃这里边儿是呃这这这两者它是不冲突的,也就是我们既可以设置之前。
03:15
配置的这个LIMIT21Q,我们还可以在这再配置一个limit。啊,这两个一块儿配啊,这两个是在两个维度去限制limit EQ是限制它的并发请求数对吧?啊,那这个是呃,限制这个,呃,这个流出的这个带宽的速度啊,给你传输的速度究竟是多少。啊,那你多拿几个牌子,那么你就可以拿到更高的速度啊。呃,那它除了这个limit rate直接去限制它带宽之外呢,还有另外一个配置。这个配置叫limit after。这个limit rate after,哎,这个从字面上理解,其实就是你想的那样啊,在呃,多这个这个他下载多少数据之后,我才开始给他,呃,这个执行限速。
04:10
比如在这我们给它配的稍微大一点,比如给他来一兆。这个的意思呢,就是。嗯,在建立连接之后,呃,他传了一兆的数据之后,我才开始给他迅速啊,显得更灵活一些。然后我们来保存,我们看看这个效果。然后还是去下载这个文件。嗯,那文件名再粘一下。来,走。诶,大家看瞬间这就已经有了一兆是吧,你看这儿。他刚一开始啪一下就一兆就过来了,然后再直行限速,然后看这个速度800多B,然后1200多B啊1024B是。
05:01
1K大小对吧,就是先让你下载这么多满速下载,然后再让你去这个呃限速,那这有啥用呢?你限速我们比较好理解对吧,比如说针对于不同的用户啊,不同的这个,呃,这个区域我给他去做限速啊,因为你在这个location这去做的这个配置嘛,在这里边可以有一些逻辑啊,然后这个。嗯,我先让它快一点,然后再让它慢起来,这是不是有点有点太坏了,对吧,但其实这是很有用的,比如说我们做一些视频网站的时候啊,就是给用户传一些这个FLV,或者是这个MP4的这些。这这些多媒体文件,那刚开始的时候就给人限速啊,这有点不合适,应该让他最快速度先看一会儿对吧,那他看完。这个这个这个之后又觉得不好,他可能马上就给关了,所以我可以先给他一点,先让他预览,先看一看,你没必要呢,这比如比如说比较大的一个文件,就这个500来兆的文件,如果上来把速度全都跑满,它刚一打开,因为它的速度也非常快。
06:05
把这个带宽全都给消耗掉了。完全没有必要的传说他后边他可能不看了,对吧,所以先给他。呃,快一点的给他一部分东西,比如给他个呃几十兆,先让他看着,然后接下来呢,你不是看上引雷了吗?然后再给你限速,然后呢,呃,看着看着一看后边有点卡了,那接下来弹吉圈嘛,是吧,办个会员,然后你就不卡了,当然这有点缺德,有点有点太坏了,呃,正常情况下我们就我们这个这个做限速就可以这么做,尤其是对于音视频这种啊。先先加载速度比较快,然后后边呢,也不也这个速度也一定要满足他能够流畅的去观看啊。呃,这样就主要是有效的避免这个带宽,这个带宽的浪费,没必要一前让他把速度跑满,那可能前面十几秒钟他就下载了好几百兆的东西,对吧,那他不看的不就浪费了吗?对吧。呃,那么这个呢,就是它的这个官方拈里的比较完整的啊,这个限制带宽的这种方式啊,当然还有一些第三方的模块啊,可以更加精准的去限制这个,呃,用户的一个带宽这个速度在咱这呢啊,就先不讲了啊。
我来说两句