快取行為該如何設計?
在 Day 5- Amazon Lightsail 也可以套用 CDN (AWS Cloudfront) 的時候建議預設是全部 forword 不做快取,這樣其實就會失去快取的效果,但起碼是網站都是可以瀏覽的。那要如何做快取才是最好的方式?其實快取的標的基本上是靜態資源,這個靜態資源不一定是指實際有存在的檔案,如果是以 php 模擬出來的 html 也是可以接受的存在。
快取的作法
在設定完之後,如果點到 Behaviors 應該只有預設的一行
Default (*) 在這邊的意思是指,預設或者是說如果沒有其他的條件就可以套用他,在預設都沒有快取之下,我們就可以開始針對各種靜態資源進行快取,這是在多年經驗下統整出最保險,也是最不會出現意外故障的作法。
假設我們的圖片都是 png 類型的該怎麼做快取呢?
先點選 Create Behaviors
現在新版的設定不多,所以可以比較輕鬆的設定
設定重點
- Path Pattern 是指哪種檔案,如果要將所有png結尾的圖片作快取就可以在這邊填入『*.png』
- Cache Policy 選擇 Managed-CachingOptimized
- Origin Request Policy 選擇 Managed-UserAgentRefererHeaders
只要這三項就可以點下 Create 送出囉
Cloudfront 設定生效大約需要 5-15 分鐘只要等 In Progress 結束出現 Deployed 即是每個節點設定都生效了
設定中
生效
驗證生效方式
只要開啟開發者模式中確認 png 資源中有沒有出現 x-cache: Hit from cloudfront
如果沒有生效出現 Miss from cloudfront 請多刷兩次,如果持續都沒有生效就需要回去檢查原因了。
常見所需快取的資源
其實一個網站可以快取的東西很多,常見的就各種圖片類型 png、jpg、jpeg 、gif 等,其中要注意 cloudfront 目前預設不 support Webp 要用 webp 需另外上程式,其他如 woff2、css、htm、html 都是可以快取的靜態資源,所以都是可以設定的
請持續鎖定 Nextlink 架構師專欄,以獲得最新專業資訊喔!
若您有任何 AWS 需求,歡迎與我們聯繫!