Nginx带宽控制(限速模块使用)
有个老项目,通过Squid提供文件下载功能,利用delay_parameters实现带宽控制,问题是我玩不转Squid,于是盘算着是不是能在Nginx里找到类似的功能。
好消息是Nginx提供了limit_rate和limit_rate_after,举个例子来说明一下:
location/download/{ limit_rate_after500k; limit_rate50k; }
大概意思是:用户下载达到500k后,便控制其速度在50k以内。
坏消息是此控制是针对单个连接而言的。换言之,只能限制单个连接的带宽,不能限制总带宽。不过使用limit_conn模块的话,可以在一定程度上缓解问题:
limit_conn_zone$server_namezone=servers:10m;
server{ location/download/{ limit_connservers1000; limit_rate_after500k; limit_rate50k; } }