CDN加速服務的回源流量大于訪問流量是什么原因
更新時間 2024-07-30 16:30:26
最近更新時間: 2024-07-30 16:30:26
分享文章
本文介紹CDN加速服務的回源流量大于訪問流量的可能原因及解決方案。
背景說明
使用CDN加速后,用戶請求均訪問到CDN節點,由CDN節點響應文件給用戶。在文件可緩存情況下,CDN節點的訪問流量通常遠大于回源流量。如果通過CDN加速控制臺查看發現回源流量大于訪問流量,可參考本文檔進行排查。
可能原因
CDN加速開啟壓縮,而源站未開啟壓縮
源站未開啟壓縮功能時,CDN節點回源請求獲取到的是非壓縮文件,而CDN節點上如果開啟了壓縮,針對用戶請求頭包括Accept-Encoding: gzip, deflate時,CDN節點會響應壓縮后的文件。由于壓縮后文件約為未壓縮文件的10-30%,如果域名整體請求量較小,此時可能會造成CDN加速服務的回源流量大于訪問流量。
解決方案:此場景下建議源站開啟Gzip壓縮。
注意CDN節點回源時,默認會攜帶Via請求頭,對于請求頭帶有Via的請求,源站即便開啟Gzip壓縮,仍有可能無法返回正確的壓縮響應,此時也會造成回源流量大于訪問流量。該情況下建議調整Gzip壓縮配置以使其生效,以nginx為例,可通過設置:gzip_proxied any使得Gzip壓縮成功。
未開啟分片回源功能,用戶請求Range
未開啟分片回源時,若用戶發起Range請求,CDN默認完整文件回源并緩存文件(Range 請求頭部 Start值的偏移量在5MB內),此時源站響應的文件大于客戶端請求的Range范圍,如果用戶最終并未請求完整文件,且域名總體請求量較小,此時也會造成回源流量大于訪問流量。
解決方案:建議源站改造支持Range請求。