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請求時,處理流程如下圖所示。
- 當終端用戶向
www.a.com
下的指定資源發起請求時,首先向LDNS(本地DNS)發起域名解析請求。 - LDNS檢查緩存中是否有
www.a.com
的IP地址記錄。如果有,則直接返回給終端用戶;如果沒有,則向授權DNS查詢。 - 當授權DNS解析
www.a.com
時,返回域名CNAMEwww.a.tbcdn.com
對應IP地址。 - 域名解析請求發送至阿里雲DNS調度系統,並為請求分配最佳節點IP地址。
- LDNS獲取DNS返回的解析IP地址。
- 用戶獲取解析IP地址。
- 用戶向獲取的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中不同參數代表相同的內容,建議開啟過濾參數,有效提升緩存命中率。