服务器上的大文件下载,在普通用户请求时不会有大问题,因为普通用户的下载带宽通常在几十M左右,因此一个请求对
服务器的带宽压力不大。
但当
服务器作为CDN回源时就千万要注意了,CDN的机房带宽通常可以达到数百M甚至上G,而IDC机房的带宽费用往往是根据峰值带宽来计算。
因此如果CDN回源大文件时不对服务器带宽做限制,将会出现瞬间极大峰值,造成不必要的经济损失。
你花冤枉钱了吗?服务器带宽的配置
解决问题的核心在于限制服务器上行带宽。
我们通过对nginx增加带宽限制尝试解决这个问题。
nginx里有2个配置项
limit_rate <size>
限制单个请求带宽峰值,512, 1k, 10m
limit_rate_after <size>
当下载超过一定大小后开始限制,100m, 100k
进行如此配置后,我们用curl进行测试,发现当文件下载超过一定大小后,下载速率就会降到limit_rate设定的带宽值。
总结:如果网站有大文件资源时,一定要注意下载速率的配置,特别是在做CDN回源时尤其必须对速率进行配置。即便不做CDN回源,在某些特殊场景下也有可能出现高带宽下载,因此要特别注意!