豐臺服務(wù)器上的大文件下載,在普通用戶請求時不會有大問題,因為普通用戶的下載帶寬通常在幾十M左右,因此一個請求對豐臺服務(wù)器的帶寬壓力不大。
但當(dāng)豐臺服務(wù)器作為CDN回源時就千萬要注意了,CDN的機房帶寬通??梢赃_(dá)到數(shù)百M甚至上G,而IDC機房的帶寬費用往往是根據(jù)峰值帶寬來計算。
因此如果CDN回源大文件時不對服務(wù)器帶寬做限制,將會出現(xiàn)瞬間極大峰值,造成不必要的經(jīng)濟損失。
你花冤枉錢了嗎?服務(wù)器帶寬的配置
解決問題的核心在于限制服務(wù)器上行帶寬。
我們通過對nginx增加帶寬限制嘗試解決這個問題。
nginx里有2個配置項
limit_rate <size> 限制單個請求帶寬峰值,512, 1k, 10m
limit_rate_after <size> 當(dāng)下載超過一定大小后開始限制,100m, 100k
進(jìn)行如此配置后,我們用curl進(jìn)行測試,發(fā)現(xiàn)當(dāng)文件下載超過一定大小后,下載速率就會降到limit_rate設(shè)定的帶寬值。
總結(jié):如果網(wǎng)站有大文件資源時,一定要注意下載速率的配置,特別是在做CDN回源時尤其必須對速率進(jìn)行配置。即便不做CDN回源,在某些特殊場景下也有可能出現(xiàn)高帶寬下載,因此要特別注意!