天天看點

OSS 解決方案篇-OSS 結合全站加速使用

功能描述

首先闡述如果能解決動靜态分析的場景

DCDN 支援動态的檔案加速規則,使用者可以配置配置哪些是靜态檔案需要緩存,哪些是動态檔案不需要緩存。

開啟動态加速

  • 開啟:可自定義動靜态資源加速規則,靜态内容使用邊緣緩存,動态内容采用最優路由回源,支援三種靜态檔案比對方式(URI、字尾、路徑)
  • 關閉:無動态内容加速效果,僅保留靜态邊緣緩存功能
OSS 解決方案篇-OSS 結合全站加速使用

配置方法

建立 DCDN 域名時,選擇 OSS 域名作為原站,在下來框裡面可以自動檢索出客戶的 OSS bucket

回源端口建議使用 443 回源避免被劫持

OSS 解決方案篇-OSS 結合全站加速使用

回源規則

這個規則預設不用更改,但當原站如果是私有 bucket 權限,用戶端不想每次自己計算 OSS signature 簽名,那可以把 “私有bucket回源” 功能開啟,這樣使用者不用自己計算簽名,通過 DCDN 來自動算簽;

OSS 解決方案篇-OSS 結合全站加速使用

緩存規則配置

使用者如果之前配置來靜态路由規則後,在緩存規則裡面可以配置對應的緩存時間,那動态的檔案就直接回源,靜态的走本地 cache

OSS 解決方案篇-OSS 結合全站加速使用

跨域配置

當 DCDN 域名回源到 OSS 時會觸發跨域,因為 DCDN 和 OSS是兩個完全不同的主站,是以需要在 OSS 上配置跨域;

OSS 解決方案篇-OSS 結合全站加速使用
OSS 解決方案篇-OSS 結合全站加速使用

如果用戶端請求 DCDN 也是兩個不同的主站域名那麼在 DCDN 上也要配置;

Access-Control-Allow-Origin

Access-Control-Allow-Headers

Access-Control-Allow-Methods

OSS 解決方案篇-OSS 結合全站加速使用

開啟 OSS 自動重新整理功能

使用者如果更新 OSS 靜态檔案後,希望 DCDN 将同名的舊檔案從緩存中清理掉,可以開啟自動重新整理功能。

OSS 解決方案篇-OSS 結合全站加速使用

FQA

使用 DCDN 和 OSS 後靜态檔案為強制下載下傳

由于OSS的預設政策在通路3級域名時,會給檔案添加attachment屬性,導緻檔案為強制下載下傳。

需要修改 DCDN 的回源HOST,配置為加速域名而不是Bucket域名(即不是為aliyuncs.com結尾的域名,此域名為OSS的預設域名);

通路 OSS 靜态檔案大小和 DCDN 緩存檔案大小不一緻

OSS 通過 putObject 等上傳方式都是會在 response 頭中記錄content-length 和 content-MD5 的資訊傳回給用戶端,使用者可以根據該資訊确定本地下載下傳得到的檔案是否與 OSS 伺服器端存儲的資料是否一緻。

OSS 解決方案篇-OSS 結合全站加速使用

但使用 DCDN 加速 OSS 出現檔案大小和 OSS 不一緻時可以從一下方面進行排查:

  • 擷取 DCDN 上的曆史緩存。由于 OSS 上的檔案更新而 DCDN 上仍然緩存着曆史的舊資料導緻的該問題,可以通過重新整理 DCDN 緩存解決。
  • DCDN 的智能壓縮功能。 DCDN 會對滿足特定條件的檔案自動做 gzip壓縮,當用戶端發送的 Request 頭有 Accept-Encoding : gzip ,即表示用戶端支援 gzip 壓縮并且滿足CDN智能壓縮就會進行壓縮,而壓縮後就會導緻該檔案更改為 chunked 編碼,将無法擷取得到 content-length 。
  • DCDN 的頁面優化功能。 DCDN 針對于 html 檔案提供了 trim 的功能,即 DCDN 在開啟頁面優化功能後可以幫助使用者自動去掉 html 頁面中的空格以及注釋,這樣可以減少下行流量。但是這就會導緻用戶端接收到的 content-length 或者 content-MD5 發生變化。
  • HTTP 劫持問題。當如果用戶端到 DCDN 的邊緣節點或者 DCDN 父層節點回源到源站使用 HTTP 協定時資料傳輸是非加密的,是以是有可能出現在網絡傳輸的過程中包内容被篡改的情況。這種情況就會導緻用戶端接收與 OSS 存儲内容不一緻。該問題可以通過修改為 HTTPS 協定規避該問題。