阿里雲CDN實踐


0.前言

經常看到一些網站上的圖片,img src都是這樣式的:

https://img3.uzaicdn.com/ba/sightGallery/ATT0000699099.jpg?imageView2/2/w/679/h/466

京東的:

img30.360buyimg.com/img/s260x260_jfs/t1/203631/40/6996/196172/61449d46Ee5b89604/becdc87f124c4908.jpg!cc_130x130.webp 

他們都用了CDN,怎么搞出來這樣的url?下面用阿里雲實驗一把!

阿里雲CDN簡介

簡介:https://help.aliyun.com/document_detail/27101.html?spm=5176.208361.1107621.2.543057e0d7oHZi

前提:已經購買並備案域名wolia.xyz

1.購買CDN

2.CDN控制台

https://cdn.console.aliyun.com/overview

3.域名管理-添加域名

添加一個二級域名,img1.wolia.xyz (現在還沒有創建此二級域名記錄,等會要在域名解析控制台去創建)輸入到下圖加速域名輸入框。

(a)首次添加域名身份驗證

由於您是首次添加該域名,需要驗證該域名的歸屬權后,方能添加域名。

如果一個域名首次被添加到CDN控制台,您需要完成域名的歸屬權驗證,確保域名只被真正的擁有者添加,避免出現用戶A的域名被用戶B添加導致域名沖突及安全隱患問題。驗證通過CDN視為您擁有該域名,您在CDN控制台再次添加該域名或子域名時,不需要再次驗證。

兩種方式,這里用文件驗證方式,上傳verification.html到nginx根目錄

1.DNS解析驗證

2.文件驗證

下載並上傳verification.html到nginx根目錄。

/usr/local/openresty/nginx/html

(b)業務信息

(c)添加源站信息

源站就是你的文件源所在的服務器,可以添加oss、IP、域名、編程式配置。

阿里雲CDN支持的源站類型包括OSS域名、IP、源站域名和函數計算域名,每種源站類型都支持配置多個源站地址,多源站場景下,支持設置源站的主備優先級和權重,實現負載均衡。本文介紹如何新增或修改源站信息及源站的健康檢查策略。

4.添加成功

5. 配置緩存過期時間

訪問速度慢常與命中率低有強關系,推薦配置緩存過期時間、過濾參數提升命中率。

請設置靜態資源緩存時間,緩存時間設置將有效提升資源的命中率,提升訪問性能,減少回源 。

緩存過期時間指資源在CDN節點上緩存的時長。CDN的默認緩存時間最短為10秒,最長為3600秒,資源過期后會自動從CDN節點刪除,您向CDN節點發起的訪問請求會被判定為無效,請求會回源站獲取最新資源並緩存到CDN節點。您可以根據業務需求,按目錄或文件后綴名配置靜態資源的緩存過期時間。

過期時間
資源對應的緩存過期時間,最長可以設置3年。設置規則如下:不常更新的靜態文件:例如,圖片類型、應用下載類型等,建議設置1個月以上。頻繁更新的靜態文件:例如,JS、CSS等,根據實際業務情況設置。動態文件:例如,PHP、JSP、ASP等,建議設置為0s,即不緩存。

設置了目錄和圖片的失效時間

6.域名解析控制台-配置加速域名的CNAME

CNAME就是將一個域名指向另一個域名。這里要操作的就是,將上面配置的二級域名 img1.wolia.xyz 指向阿里雲的cdn域名,將兩者建立關系。

將域名img1.wolia.xyz 指向了 img1.wolia.xyz.w.kunlunaq.com,這樣訪問img1.wolia.xyz就轉發到了 img1.wolia.xyz.w.kunlunaq.com,

配置CNAME

點擊【打開配置向導】會給img1.wolia.xyz生成右側彈框內容,去域名解析控制台,將這些給wolia.xyz 配置一條CNAME

域名解析控制台: https://dns.console.aliyun.com/#/dns/setting/wolia.xyz

添加記錄

域名 img1.wolia.xyz
CNAME記錄值 img1.wolia.xyz.w.kunlunaq.com
主機記錄 img1
記錄類型 CNAME

按照CDN配置向導里面的內容 添加

7.驗證

二級域名轉發到了oss

oss上傳一張圖片

通過域名img1.wolia.xyz訪問圖片

http response header信息

Accept-Ranges: bytes
Age: 2630
Ali-Swift-Global-Savetime: 1635473258
Connection: keep-alive
Content-MD5: jzczkFRlFbBj3rcdC+htig==
Content-Type: image/jpeg
Date: Fri, 29 Oct 2021 02:07:38 GMT
EagleId: 6f0db3d616354758880384604e
ETag: "8F373390546515B063DEB71D0BE86D8A"
Last-Modified: Thu, 28 Oct 2021 10:21:42 GMT
Server: Tengine
Timing-Allow-Origin: *
Via: cache39.l2cn2633[281,297,304-0,M], cache28.l2cn2633[298,0], cache13.cn416[0,0,304-0,H], cache14.cn416[2,0]
X-Cache: HIT TCP_IMS_HIT dirn:10:104339440
x-oss-cdn-auth: success
x-oss-hash-crc64ecma: 4772944304294313553
x-oss-object-type: Normal
x-oss-request-id: 617B576A5DFDD131332F3380
x-oss-server-time: 1
x-oss-storage-class: Standard

8.加速原理

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

假設您的加速域名為www.a.com,接入CDN開始加速服務后,當終端用戶在北京發起HTTP請求時,處理流程如下圖所示。

  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節點並返回給用戶,例如圖中的北京節點,此時請求結束。配置緩存策略的操作方法,請參見配置緩存過期時間

9.一些概念

https://help.aliyun.com/document_detail/27102.html

本文介紹阿里雲CDN產品中涉及的一些基本概念,便於您更准確地理解和使用CDN產品。

源站

源站是指運行用戶業務應用的Web服務提供方。源站可用來處理和響應用戶請求,當邊緣節點沒有緩存用戶請求的內容時,節點會返回源站獲取資源數據並返回給用戶。阿里雲CDN的源站可以是OSS域名、IP、源站域名或函數計算域名。

邊緣節點

邊緣節點是CDN用於緩存源站資源,以便快速響應不同地域用戶請求的網絡節點。在阿里雲CDN的幫助文檔中,邊緣節點、CDN節點、Cache節點、緩存節點、加速節點、阿里雲節點等都指阿里雲CDN的邊緣節點。

加速域名

加速域名是您接入CDN用於加速的域名,終端用戶實際訪問的域名。例如,用戶通過aliyun.com進行訪問,aliyun.com即為加速域名。

阿里雲CDN通過加速域名,將源站資源緩存到CDN加速節點,實現資源訪問加速。在阿里雲CDN的幫助文檔中,加速域名通常被簡寫為域名。

說明 域名(Domain Name)又稱網域,是由一串用點分隔的名字組成的Internet上某一台計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。

CNAME記錄

CNAME(Canonical Name)記錄即別名記錄,用來把一個域名解析成另一個域名,再由另一個域名提供源站服務。

例如,您在一台服務器上存放了很多資料,使用example.aliyundoc.com訪問服務器上的資源,但又希望通過demo.aliyundoc.com也能訪問,您可以在您的DNS解析服務商添加一條CNAME記錄,將demo.aliyundoc.com指向example.aliyundoc.com,所有訪問demo.aliyundoc.com的請求都會被轉發到example.aliyundoc.com

CNAME域名

在CDN控制台添加加速域名后,系統會給該域名自動分配一個*.*kunlun*.com形式的CNAME域名。

您需要在您的DNS解析服務商處添加一條CNAME記錄,將加速域名指向CNAME域名。記錄生效后域名解析就正式轉向CDN服務,該域名所有的請求都將轉向CDN的邊緣節點,達到加速效果。

靜態內容(靜態資源)

靜態內容是指用戶多次請求某一資源,響應返回的數據都是相同的內容。例如圖片、視頻、網站中的文件(HTML、CSS、JS)、軟件安裝包、APK文件、壓縮包文件等。

CDN通過加速域名將源站的靜態資源緩存到CDN遍布全球的加速節點上,供用戶就近訪問,實現資源訪問加速。

動態內容(動態資源)

動態內容是指用戶多次請求某一資源,響應返回的數據可能是不同的內容。例如網站中的文件(ASP、JSP、PHP、PERL、CGI)、API接口、數據庫交互請求等。

阿里雲CDN只能加速靜態資源,如果需要加速動態資源,可以使用阿里雲全站加速產品。詳細說明,請參見什么是全站加速

DNS

DNS(Domain Name System)即域名解析服務,可以將域名轉換成網絡可以識別的IP地址。人們習慣記憶域名,但機器間互相只識別IP地址。域名解析就是把域名指向網站IP地址,讓用戶通過該域名即可訪問到您網站的一種服務。域名解析需要由專門的域名解析服務器來完成,整個過程自動進行。例如,您上網時輸入的www.example.com會自動轉換成220.181.112.143(舉例說明,具體IP以實際為准)。

阿里雲的DNS解析產品是雲解析DNS。詳細信息,請參見雲解析DNS

SSL/TLS

SSL(Secure Sockets Layer)即安全套接字協議,SSL協議位於TCP/IP協議與各種應用層協議之間,可以有效協助Internet上的應用軟件提升通訊時的資料完整性及安全性。IETF將SSL標准化后名稱被改為TLS(Transport Layer Security),即傳輸層安全協議,因此通常將兩者並稱為SSL/TLS。

回源

當用戶通過瀏覽器發送請求時,如果CDN節點未緩存請求的資源或緩存資源已到期,此時會回源站獲取資源並返回給用戶,該過程被稱為回源。

回源HOST

回源HOST,即CDN節點回源時實際請求的域名。默認情況,回源HOST為加速域名,當源站服務器上提供多個域名服務時,您可根據業務需求指定CDN節點回源時在訪問的具體域名。

例如,您期望CDN回源時實際請求的地址為example-origin.com,與加速域名www.example.com不同,那么您需要配置回源HOST為example-origin.com

回源協議

回源協議指CDN節點回源時使用的協議,與客戶端訪問資源時使用的協議相同。例如,當客戶端使用HTTPS方式請求未緩存在CDN節點上的資源時,CDN節點會使用相同的HTTPS方式回源站獲取資源。

過濾參數

通過過濾參數,您可以根據實際業務需要,決定在緩存時是否過濾用戶請求URL中?

  • 開啟過濾參數,CDN節點會截取不帶參數的URL向源站請求,且CDN節點僅保留一份副本。
  • 關閉過濾參數,每個不同的URL會緩存不同的副本在CDN節點上。

如果您的URL中不同參數代表相同的內容,建議開啟過濾參數,有效提升緩存命中率。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM