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