天天看點

阿裡雲CDN加速原理介紹什麼是阿裡雲CDNCDN加速前CDN加速後CDN工作原理什麼資源可以被加速CDN的緩存政策更多

什麼是阿裡雲CDN

阿裡雲内容分發網絡(Content Delivery Network,簡稱CDN)是建立并覆寫在承載網之上,由分布在不同區域的邊緣節點伺服器群組成的分布式網絡。阿裡雲CDN分擔源站壓力,避免網絡擁塞,確定在不同區域、不同場景下加速網站内容的分發,提高資源通路速度。點選文檔

三分鐘了解阿裡雲CDN

CDN加速前

使用CDN加速前,使用者側發起的請求通過使用者側DNS遞歸到網站DNS解析以後,最終使用者側直接請求網站伺服器。這裡可能會造成以下幾種情況:

  1. 中心伺服器負載過高,因為所有用戶端發起的請求都會請求到伺服器上
  2. 終端使用者内容擷取延時高,比如伺服器在北京,而使用者在廣州
  3. 服務穩定性差
    阿裡雲CDN加速原理介紹什麼是阿裡雲CDNCDN加速前CDN加速後CDN工作原理什麼資源可以被加速CDN的緩存政策更多

CDN加速後

CDN通過在現有網絡中增加一層新的緩存節點,将源站的資源釋出到最接近使用者的網絡節點,使得用戶端在請求時直接通路到就近的CDN節點并命中該資源,減少回源情況,提高網站通路速度。CDN緩存節點可分為L1節點(一級節點)和L2節點(二級節點),請求的流程是:用戶端-->CDN_L1-->CDN_L2-->源站。CDN的L1節點分布在全國各省市,L2節點分布在幾個大區下,可以把L2節點了解為彙聚式節點,簡單架構如下圖所示。

阿裡雲CDN加速原理介紹什麼是阿裡雲CDNCDN加速前CDN加速後CDN工作原理什麼資源可以被加速CDN的緩存政策更多

CDN節點緩存政策如下:

1.用戶端向CDN節點發起連接配接請求,當L1節點有緩存資源時,會命中該資源,直接将資料傳回給用戶端。當L1節點無緩存資源時,會向L2節點請求對應資源,如果L2節點有緩存資源,則将資源同步到L1節點,并傳回給使用者;如果L2節點無緩存資源,則直接回客戶源站擷取資源,并按照配置的緩存政策進行緩存。

2.為了友善了解,再舉一個簡單例子,假設有杭州移動節點Cache1和甯波移動節點Cache2兩個L1節點,這兩個L1節點都回源到同一個L2這個節點,源站在北京。這幾個CDN節點初始的時候都沒有使用者的緩存資源。當ABC三個使用者依次請求同一個圖檔的時候,過程如下:

  • 杭州移動使用者A被CDN排程到杭州移動Cache1節點,Cache1由于沒有緩存,則回源到L2,L2由于也沒有緩存,則回源到北京源站,請求到資料以後再傳回給Cache1,L1再傳回給使用者A。
  • 使用者A請求完以後,Cache1和L2節點都有了緩存資源。此時杭州移動使用者B也開始通路這個圖檔,使用者B也被配置設定到了Cache1節點,由于Cache1已經有這個圖檔的緩存了,是以Cache1不需要再去回源了,而是直接傳回緩存給使用者B。
  • 甯波移動使用者C此時也通路了同一個圖檔,使用者C被配置設定到了甯波移動節點Cache2,由于Cache2還沒有緩存,就會回源到L2,而L2已經有緩存,是以L2會直接傳回緩存資料給Cache2,然後Cache2再傳回給使用者B。此過程存在Cache1向L2回源的過程,而L2不需要再去回源到源站了。
  • 通過CDN加速,杭州使用者A和B可以直接從杭州節點讀取緩存資料,甯波使用者C可以直接從甯波節點讀取資料,不需要每一次都去請求北京伺服器了,提高了使用者側的通路速度,降低了伺服器壓力。

CDN工作原理

通過以下案例,可以進一步了解CDN的工作原理。

假設加速域名為www.a.com, 接入CDN網絡,開始使用加速服務後,當終端使用者(北京)發起HTTP請求時,處理流程如下圖所示。

阿裡雲CDN加速原理介紹什麼是阿裡雲CDNCDN加速前CDN加速後CDN工作原理什麼資源可以被加速CDN的緩存政策更多

1.當終端使用者(北京)向www.a.com 下的某資源發起請求時,首先向LDNS(本地DNS)發起域名解析請求。

2.LDNS檢查緩存中是否有www.a.com 的IP位址記錄。如果有,則直接傳回給終端使用者;如果沒有,則向授權DNS查詢。

3.當授權DNS解析www.a.com 時,傳回域名CNAME www.a.tbcdn.com 對應IP位址。

4.域名解析請求發送至阿裡雲DNS排程系統,并為請求配置設定最佳節點IP位址。

5.LDNS擷取DNS傳回的解析IP位址。

6.使用者擷取解析IP位址。

7.使用者向擷取的IP位址發起對該資源的通路請求。

  • 如果該IP位址對應的節點已緩存該資源,則會将資料直接傳回給使用者,例如,圖中步驟7和8,請求結束。
  • 如果該IP位址對應的節點未緩存該資源,則節點向源站發起對該資源的請求。擷取資源後,結合使用者自定義配置的緩存政策,将資源緩存至節點,例如,圖中的北京節點,并傳回給使用者,請求結束。配置緩存政策的操作方法,請參見緩存配置。

特别注意

CDN排程系統配置設定節點的時候,是根據用戶端的LocalDNS來配置設定節點的,而不是根據用戶端IP來配置設定節點的。是以,如果用戶端LocalDNS設定不正确的話會導緻無法配置設定排程到最優的節點。

什麼資源可以被加速

在HTTP請求的資源,請求可以分為靜态内容和動态内容。

靜态内容(靜态資源)

靜态内容是指在不同請求中通路到的資料都相同的靜态檔案。例如:圖檔、視訊、網站中的檔案(html、css、js)、軟體安裝包、apk檔案、壓縮封包件等。

CDN加速的本質是緩存加速,将您伺服器上存儲的靜态内容緩存在阿裡雲CDN節點上,當您通路這些靜态内容時,無需通路伺服器源站,就近通路阿裡雲CDN節點即可擷取相同内容,進而達到加速的效果,同時減輕伺服器源站的壓力。

動态内容(動态資源)

動态内容是指在不同請求中通路到的資料不相同的動态内容。例如:網站中的檔案(asp、jsp、php、perl、cgi)、API接口、資料庫互動請求等。

當用戶端通路這些動态内容時,每次都需要通路使用者的伺服器,由伺服器動态生成實時的資料并傳回給用戶端。是以CDN的緩存加速不适用于加速動态内容,CDN無法緩存實時變化的動态内容。對于動态内容請求,CDN節點隻能轉發回源站伺服器,沒有加速效果。

如果使用者的網站或App應用有較多動态内容,例如需要對各種API接口進行加速,則需要使用阿裡雲

全站加速

産品。全站加速能同時加速動态和靜态内容,加速方式如下:

  • 靜态内容使用CDN加速。
  • 動态内容通過阿裡雲的路由優化、傳輸優化等動态加速技術以最快的速度通路您的伺服器源站擷取資料。進而達到全站加速的效果。

CDN的緩存政策

靜态内容可以在CDN上緩存多久,這個是根據CDN的緩存政策的。如果使用者沒有主動到CDN上配置過期時間,則會遵循

CDN的預設緩存政策

。CDN的預設緩存時間比較短,最大不超過3600秒,是以很容易緩存過期。因為網站開發及其相關技術人員更清楚自身網站的業務邏輯、靜态和動态因素,是以建議使用者通過控制台按照檔案類型和目錄設定緩存時間。

使用者可以登入阿裡雲CDN控制台

配置緩存過期時間

,針對靜态資源配置指定目錄和檔案字尾名的緩存過期時間和優先級,資源過期後,自動從CDN節點删除。

更多

CDN應用場景