阿里雲CDN+OSS完成圖片加速

CDN+OSS能解決圖片加速的問題,那具體是怎樣配置的呢?這裏我們先把兩個名詞瞭解清楚,有些名詞因爲向來沒有被很好地解釋,導致使用者對概念理解不正確,從而對加速的流程理解有錯誤,即使按照文檔提示可以配置了,也無法正確理解爲什麼要那樣去配置。

加速域名

比如我的網站域名是www.mydomain.com,CDN是用來加速這個網站的圖片,那麼有人就以爲加速域名是:www.mydomain.com,即把加速域名理解爲被加速的網站的域名。而實際上,我們應該添加一個二級域名來作爲加速域名,加速域名的意思是,你訪問這個域名的時候,所訪問的資源是通過CDN來加速了的,需要注意的是,在這裏,加速域名不是:www.mydomain.com。

源站域名

對於我們這個場景來說,源站域名就是OSS的域名。如果我們通過OSS域名來訪問圖片資源,那麼就直接從OSS服務器獲取圖片,而如果從加速域名訪問圖片,則先試圖從CDN服務器獲取圖片資源,如果CDN服務器沒有緩存圖片資源,則CDN服務器會自動去源站OSS服務器獲取圖片資源並緩存在CDN服務器上。

配置及原理

具體來說,比如我要在網站某個頁面上顯示一張圖片,這張圖片是放OSS中的,地址爲:https://mydomain.com-oss.aliyun.com/test.jpg。現在我想使用CDN來加速這張圖片,那麼我需要在網站頁面代碼裏面修改圖片的地址爲加速域名的地址。我先在阿里雲的域名管理中選擇域名:mydomain.com,然後給它添加一個二級域名,暫且就叫cdn.mydomain.com吧,之後在阿里雲CDN控制檯的域名管理界面上,添加一個加速域名,就是這個:cdn.mydomain.com,源站域名就設置爲:https://mydomain.com-oss.aliyun.com。阿里雲CDN會給這個加速域名分配一個CNAME,比如:cdn.mydomain.com.kunlunar.com,然後你在mydomain.com的域名解析那裏,給二級域名:cdn.mydomain.com添加一個CNAME類型的解析,值爲:cdn.mydomain.com.kunlunar.com。

現在就可以改下你網站界面裏面的代碼了,比如原來有代碼如下:

<img src=”https://mydomain.com-oss.aliyun.com/test.jpg” />

就需要改成:

<img src=”https://cdn.mydomain.com/test.jpg” />

這樣,當用戶瀏覽你的網站:www.mydomain.com,訪問到我們原來要加速的那張圖片時,就訪問了:https://cdn.mydomain.com/test.jpg,因爲我們已經給二級域名cdn.mydomain.com添加了一個CNAME解析,這時候DNS會把這個二級域名解析到CNAME的值,也就是前面提到的阿里雲給我們的CNAME值:cdn.mydomain.com.kunlunar.com,這個值再經過解析得到的是阿里雲智能DNS服務的IP,於是域名解析流程轉到了阿里雲的智能DNS。這個智能DNS根據用戶訪問的源IP地址,可以知道用戶離哪個CDN機房比較近,然後將那個CDN機房服務器的IP返回給用戶,假設爲:111.222.33.44。

用戶得到這個IP:111.222.33.44後,就近地去獲取圖片了。當用戶第一次訪問CDN機房服務器時,找不到要訪問的圖片,這時候CDN服務器就會去訪問源站,也就是從OSS中獲取要訪問的圖片https://mydomain.com-oss.aliyun.com/test.jpg,並緩存到CDN服務器上,再將圖片內容返回給用戶。下一次如果有和該用戶位於同一區域的用戶訪問該圖片,則會走一樣的流程,只是這時候,CDN服務器上已經緩存好圖片,不需要再次去OSS中獲取原始圖片了。而CDN服務器相比於OSS存儲服務器,一般來說離用戶更近一些,這樣就達到了加速訪問的效果。阿里雲CDN+OSS組合使用時,還提供了自動刷新功能,開啓這個功能後,當OSS中的原始圖片信息改變時,會通知CDN服務器重新拉取並緩存,這樣就降低了訪問CDN服務器獲取資源時緩存未命中的機率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章