天天看點

CDN加速OSS以及相關問題背景資訊架構優勢常見問題

背景資訊

OSS源站上存儲的靜态資源包括靜态腳本、圖檔、附件和音頻/視訊。當終端使用者請求通路或下載下傳靜态資源時,CDN對OSS源站上的靜态資源進行加速,源站上的資源緩存到CDN的加速節點,系統自動調用離終端使用者最近的CDN節點上已緩存的資源。加速OSS架構如下圖所示。具體操作可以參考

CDN加速OSS最佳實踐

CDN加速OSS以及相關問題背景資訊架構優勢常見問題

架構優勢

CDN加速OSS的優勢如下

(1)使用者通路網站資源,全部通過CDN,降低源站壓力。

(2)使用CDN流量,單價低于OSS直接通路外網流量。

(3)資源從距離用戶端最近的CDN節點擷取,減少網絡傳輸距離,保證靜态資源品質。

常見問題

一. 如何設定緩存自動重新整理

CDN加速OSS的場景下,在OSS的Bucket中修改了Object,使用CDN加速域名通路得到的Object仍是更新前的舊版本,必須在CDN中手動重新整理後才能通路到新版本的Object。

這是因為Bucket中的Object更新了,但是CDN中該Object的緩存未到期,是以通路的時候還是老的資源。使用者可以開啟CDN緩存自動重新整理功能。開啟此功能後,若Object有更新,OSS會自動重新整理CDN上的緩存,進而實作檔案更新時緩存自動重新整理。具體可以登入OSS控制台,在對應Bucket下選擇【傳輸管理】>【域名管理】界面,設定開啟CDN緩存自動重新整理。

CDN加速OSS以及相關問題背景資訊架構優勢常見問題

二. 如何解決靜态檔案強制下載下傳

出于安全考慮,從2019年9月23日起,針對之後建立的Bucket,直接使用OSS提供的預設域名,從網際網路通路OSS上該Bucket的圖檔類型檔案,即mimetype為以下值:

image/jpeg、image/gif、image/tiff、image/png、image/webp、image/svg+xml、image/bmp、image/x-ms-bmp、image/x-cmu-raster、image/exr、image/x-icon、image/heic,擴充名包括:jpg、jpeg、jpe、png、tif、tiff、gif、svg、bmp、ico、ras、dib、svgz、webp、bm、jfif、x-png、exr和heic時,Response Header中會自動加上 Content-Disposition:'attachment=filename;'。即從浏覽器通路圖檔類型檔案時,會以附件形式進行下載下傳。使用者使用自有域名通路OSS的請求,Response Header中不會加上此資訊。解決方案如下:

(1)檢查并設定Bucket是否綁定CDN加速域名,詳情請參見

綁定CDN加速域名

(2)檢查并配置CDN配置的回源Host為使用者的加速域名,而不是源站域名。如果設定源站域名(也就是OSS的域名),則CDN回源的時候所帶的Host就是OSS域名,這樣會導緻OSS傳回強制下載下傳的HTTP頭最終導緻資源直接下載下傳。

CDN加速OSS以及相關問題背景資訊架構優勢常見問題

注:

如果通路URL仍然為強制下載下傳,則可能是CDN緩存了強制下載下傳的HTTP頭,需要在CDN控制台重新整理URL。另外需要檢查OSS源檔案的HTTP頭内Content-Type的值是否正确,詳情請參見

OSS如何設定Content-Type

三. CDN加速導緻OSS配置的CORS跨域失效

使用CDN加速OSS跨域通路失敗,原因是可能存在這樣的場景:

第一個使用者通路CDN時,沒有發起跨域通路,然後CDN回源到OSS的時候OSS傳回了不帶跨域頭的Respons Headers資訊,并且被CDN緩存下來了。 當第二個使用者通路時,發起了跨域請求,但是由于CDN有緩存,直接把之前緩存下來的不帶跨域頭的Respons Headers資訊傳回了,導緻本次跨域請求失敗。是以建議使用CDN加速OSS時,直接在CDN上去配置跨域規則,具體請參考

CDN如何配置跨域資源共享(CORS)

四. CDN加速OSS資源傳回403狀态碼

為了防止OSS被盜鍊,保護OSS的資源安全,使用者把OSS的Bucket權限設定為私有權限,這樣就需要帶了簽名參數的URL去通路。如果CDN加速OSS的通路URL,不帶OSS簽名參數的話,就會導緻403。這種情況下可以

開啟阿裡雲OSS私有Bucket回源授權

。當開啟私有OSS Bucket回源授權後,即表示開啟CDN對所有Bucket的隻讀權限,CDN在回源的時候會計算OSS的簽名參數,進而可以從OSS上正常擷取資源。

五. CDN加速OSS通路靜态托管頁面傳回403

可以通過Network下擷取403請求的Response Headers資訊去檢視對應的錯誤資訊,如果出現如下錯誤,說明是開啟私有Bucket回源授權的情況下通路了OSS的靜态首頁。需要注意,目前CDN的私有Bucket回源功能和OSS的靜态網站托管功能沖突,無法一起使用。

You are forbidden to list buckets
           
CDN加速OSS以及相關問題背景資訊架構優勢常見問題

繼續閱讀