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