文件

Cloudflare Worker

本頁說明 worker/index.js 如何在 Cloudflare 邊緣快取圖片,以及部署前需要修改的地方。

部署前設定

handler 以 new URL(url.pathname, "[URL]") 組出回源網址,[URL] 是佔位字串,部署前必須換成圖片伺服器的來源網址(例:https://img-origin.example.com),否則 new URL 會拋出例外。

處理範圍

路徑副檔名 行為
.jpg、.jpeg、.png、.webp、.svg(不分大小寫) 快取並回源
其他(含 .avif、.pdf、無副檔名) 回 400,內容為 400

判斷依據是原始路徑的副檔名,不是 t 參數;以 t=avif 讀取 .jpg 原檔仍會被處理。PDF 上傳後無法經由此 Worker 讀取。

快取行為

項目 行為
快取 key 回源 URL(含全部 query 參數);另加 X-Custom-Cache-Key 標頭記錄 query
快取儲存 caches.default,以 event.waitUntil(cache.put(...)) 非同步寫入
有效期 回應覆寫為 Cache-Control: public, max-age=604800(7 天)
診斷標頭 CF-Cache-Status: HIT/MISS、X-Query-String

回源時沿用原請求的方法與標頭,不檢查來源回應的狀態碼。

與 Nginx 的關係

Worker 回源到 Nginx,未命中時再由 Nginx 的 proxy_cache 與 Go 服務處理;四層命中順序見 快取分層。

EN