AWS CloudFront / 亞馬遜CDN使用教程


步驟:

1. 打開CloudFront服務之后,首先需要選擇分發類型。分發類型分為一般的靜態文件分發和流媒體分發,即Web和RTMP,我的站點即選擇Web類型。

2. CDN回源設定。

a. 首先要填寫源站地址Origin Domain Name,源站可以是一個AWS S3,也可是是一個普通web站點。對於web站點,你要填寫的的便是該web站點的域名,不支持直接填寫IP;需要注意的是,該域名不能與站點提供給用戶訪問的域名一致,而是一個單獨的回源域名。例如對於我的站點,其域名為www.dancen.com,我新注冊了一個域名wwwcdn.dancen.com用於CDN回源。為什么回源域名不能與站點域名一致呢,很好理解,以我的站點為例,當用戶訪問站點www.dancen.com時,通過DNS系統查詢得到站點的CNAME記錄,CDN再通過對CNAME的解析到達邊緣節點;當需要回源時,CDN又會訪問回源域名,如果回源域名也是www.dancen.com,那就形成了一個循環,www.dancen.com -> CDN -> www.dancen.com,而且這是個死循環
---------------------
b. 其次,需要選擇回源協議,對安全要求不高的話,選擇http only即可。

3. 緩存設定。

a. 需要指定用戶訪問的協議,http和https、重定向http到https、僅https,根據需要選擇。

b. http方法,默認選擇GET,HEAD即可。

c. 需要注意的是對象緩存Object Caching的設定,該設定用來指定 CloudFront 為 Web 分配緩存對象的時長。

Use Origin Cache Headers選項表示以源站http header中Cache-Control max-age 或 Cache-Control s-maxage 指令或者 Expires 標頭字段的設定為准;

Customize選項中,最短、最長和默認 TTL 值來控制 CloudFront 在緩存中保留對象的時長 (以秒為單位),超過該時長后才會將另一個請求轉發到源。標頭值還確定瀏覽器在緩存中保留對象的時長,超過該時長后才會將另一個請求轉發到 CloudFront。

d. Query String Forwarding and Caching設定。CDN中緩存的對象是以查詢的URL來區分的,該項的默認選擇為NONE,表示忽略URL 中?之后的參數,有效提高文件緩存命中率,提升分發效率,這種情況下,

http://www.dancen.com/t.png?v1

http://www.dancen.com/t.png?v2

會被認為是同樣的請求,當t.png已經被CDN緩存,並且沒有過期時,即使服務器上的t.png被修改了,用戶也獲取不到新版的t.png。

雖然AWS官方推薦使用不同的文件名來對文件進行版本控制,但為了管理方便,我打算通過參數來對緩存進行版本控制,因此該項我設置為保留所有參數,即Forward all, cache based on all,這種情況下,

http://www.dancen.com/t.png?v1

http://www.dancen.com/t.png?v2

是兩個不同的請求,當我修改了服務器上的t.png時,客戶端只需要修改URL的參數,就能夠獲取到最新的t.png。

4. 分發設定。

a. 價格類別,價格類別由分發區域決定,最高檔即全球分發,最低檔即只在AWS的大本營北美進行分發。

b. 源站域名Alternate Domain Names,即我的站點提供給用戶訪問的域名,www.dancen.com,而該域名的CNAME,便要設定為最后CloudFront為我們生成的CDN域名:xxxxxxx.cloudfront.net。

c. SSL證書設置。

默認的ColudFront證書Default CloudFront Certificat。如果你讓用戶通過最后CloudFront為我們生成的CDN域名:xxxxxxx.cloudfront.net直接訪問你的站點,那選擇該選項。

自定義SSL證書。如果你讓用戶通過你自己的域名,例如www.dancen.com訪問你的站點,那你就得為CloudFront提供該站點的證書,該證書可以通過ACM(AWS Certificate Manager)導入,具體流程參照本文最厚的的附文部分。

d. 創建分發,點擊Create Distribution按鈕即可。

5 獲取CloudFront為我們生成的CDN域名。

創建分發后,待Status變為Deployed,說明CloudFront配置生效,這個過程可能耗費20分鍾左右。

CloudFront會生成一個域名Domain Name:xxxxxxx.cloudfront.net,我們需要在域名提供商的DNS系統把源站域名,如

www.dancen.com的CNAME記錄設定為該域名。在CMD窗口執行nslookup命令檢查你的域名,如www.dancen.com,能否解析出CDN提

供的IP,確認CNAME設定是否生效,生效后CDN加速便算是開啟成功,使用你的域名,如www.dancen.com測試通過即可。

附:

通過AWS的ACM(AWS Certificate Manager)服務導入站點SSL證書。ACM服務可以直接請求證書,也可以導入證書,這里假設你的源站已經使用https,有了SSL證書,因此只講述導入證書的步驟。

1. 打開ACM服務,點擊導入證書。

2. 填寫證書內容。

到你的站點服務器,查看證書內容,並填入ACM。例如fullchain.pem文件即為證書,打開之,第一個begin-end即為證書正文,第二個begin-end即為證書鏈;privkey.pem文件即為私匙。填寫完畢后,點擊審核並導入即可

 


免責聲明!

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



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