AWS Cloud Front 與 Cloudflare 排除特定 URL 快取小記
在雲端服務使用上, 有些公司會使用 CDN
- 內容傳遞網路(英語:Content Delivery Network或Content Distribution Network,縮寫:CDN)是指一種透過網際網路互相連接的電腦網路系統,利用最靠近每位使用者的伺服器,更快、更可靠地將音樂、圖片、影片、應用程式及其他檔案傳送給使用者,來提供高效能、可擴展性及低成本的網路內容傳遞給使用者。 [1]
借用 Azure 上面的圖片介紹
藉由 CDN 的 POP 來達成不用回到原始伺服器, 就提供相關物件給使用者
- 如果 POP 沒有該物件, 會向原點抓取物件, 然後視 CDN 設定上面的 TTL 或是其他的設定(例如 Cache-Control ) 來決定是否快取, 或是快取多久
- 如果 POP 已經快取, 針對條件範圍內的設定, 直接提供物件給使用者
- 加速使用者取得物件
- 減少原站的頻寬
但是有些時候會有排除某些物件被快取的需求
- 原站有檔案不希望被快取
- 檔案的內容有改變, 需要同時處理原站與POP物件, 但是希望使用者能在較短時間可以存取到新的檔案
- 可以使用 Purge Cache 方式, 但是需要先處理完原站的物件, 才能再去處理 CDN Purge Cache
所以這邊就針對 AWS CloudFront 與 Cloudflare 兩個服務排除特定檔案紀錄該如何處理
==== AWS Cloudfront ====
參考官方文件
登入 AWS Management Console
點選 Service -- > CloudFront
點選要處理的分佈 ID ( Distribution ID ) -- > 點選 Behaviors
點選 Create Behavior
Path Pattern 輸入要排除的物件: 例如 /error.html
Object Caching: 選擇 Customize
Minimum TTL: 設定為 0
Maximum TTL: 設定為 0
點選 Create 建立
套用需要一點時間
可以在 Distributions 的 Status 觀察是否佈署完成
接下來就可以觀察是否有被快取
==== Cloudflare ====
Cloudflare 的部分比較可惜, 因為他官方的文件沒有仔細提到, 還是開 ticket 之後才得到回答, 然後也有跟原廠建議要完備文件
官方文件如下
文件上面, 後來主要是針對 Wildcard and Advanced Pattern Matching 的部分, 卻忘記提到如何 exclude URL
做法如下
登入 Cloudflare -- > 選取要設定的單位 ( domain )
點選 Page Rule -- > Create Page Rule
輸入 URL, 例如 *.YOURDOMAIN/error.html
點選 Add a Setting
在下拉式選單選取 Cache Level , 另外一個選取 Bypass
點選 Save and Deploy 完成設定
接下來就可以觀察是否有被快取
先記下來
~ Enjoy it
Reference
沒有留言:
張貼留言