10/07 2020

【PHP on AWS】Day 7- Amazon Cloudfront 的快取行為設計

Nextlink PHP on AWS Cloudfront

快取行為該如何設計?

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 需求,歡迎與我們聯繫!