經過CDN回源響應非壓縮文件
更新時間 2023-07-05 23:07:16
最近更新時間: 2023-07-05 23:07:16
分享文章
本文介紹經過CDN回源響應非壓縮文件可能的原因及解決方案。
問題描述
源站支持Gzip壓縮,且用戶請求頭中含有Accept-Encoding: gzip, deflate,若請求未經過CDN直接回源,則源站會返回響應頭Content-Encoding: gzip,并響應壓縮文件;但經過CDN加速回源后,用戶收到的是非壓縮響應文件。本文介紹可能的原因及解決方案。
可能原因
域名經過CDN加速后,CDN節點默認會在請求頭中增加Via頭部,其值為從邊緣節點到中間節點的服務器名稱,該請求頭一般會透傳至客戶源站。如果源站為Nginx服務器,默認會針對Via代理請求頭,不響應Gzip壓縮文件。導致用戶請求經過CDN回源后,獲取到的文件為非壓縮文件。
解決方案
有如下兩種方式可以解決:
方案一:在Nginx源站Gzip配置中補充配置gzip_proxied any,即可使源站針對Via請求頭也響應Gzip壓縮文件。
方案二:在CDN節點配置文件壓縮功能,將從源站拉取到的非壓縮文件,轉換為壓縮文件后響應給用戶。
建議優先采用方案一,以避免源站流出流量大于CDN節點響應給用戶的流量。