本頁面提供使用 Cloud CDN 變更快取模式的操作說明。您可以透過快取模式設定 Cloud CDN 快取內容的方式。
事前準備
請參閱快取模式和靜態內容。
請確認已啟用 Cloud CDN。如需操作說明,請參閱「使用 Cloud CDN」。
視需要更新至最新版 Google Cloud CLI:
gcloud components update
設定快取模式
如要為啟用 Cloud CDN 的後端設定快取模式,請執行下列操作:
控制台
- 前往 Google Cloud 控制台的「Load Balancing」(負載平衡) 頁面。
- 按一下外部應用程式負載平衡器的名稱。
- 按一下「編輯」圖示 。
- 在「後端設定」中選取後端,然後按一下「編輯」圖示 。
- 確認已選取「Enable Cloud CDN」。
- 在「快取模式」下方,選取下列任一選項:
- 按一下 [儲存]。
gcloud
針對後端服務,請使用 gcloud compute backend-services
create
或 gcloud compute backend-services
update
指令,並加上 --cache-mode
旗標。
如為後端資料集,請使用 gcloud compute backend-buckets
create
或 gcloud compute backend-buckets
update
指令搭配 --cache-mode
旗標。
gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME --cache-mode=CACHE_MODE
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME --cache-mode=CACHE_MODE
請使用下列其中一個值取代 CACHE_MODE
:
CACHE_ALL_STATIC
(預設):自動快取靜態內容。系統不會快取標示為無法快取的回應 (Cache-Control
回應標頭中的private
或no-store
指令)。如要快取動態內容,內容必須包含有效的快取標頭。USE_ORIGIN_HEADERS
:需要原始來源設定有效的快取標頭,才能快取內容。沒有這些標頭的回應不會在 Google 邊緣快取,且每次要求都需要完整前往原始位置,可能會影響效能,並增加原始伺服器的負載。FORCE_CACHE_ALL
:快取所有內容 (也就是成功回應),忽略Cache-Control
回應標頭中的任何private
或no-store
指示。這麼做可能會導致快取個別使用者 (可識別使用者身分) 的私人內容。建議您僅在不會提供私人或動態內容的後端中啟用這項功能,例如 Cloud Storage 值區。請勿在提供私人或動態內容的後端中啟用這項功能。
API
如要使用後端資料集,請使用 Method: backendBuckets.insert
或 Method: backendBuckets.update
API 呼叫。
如為後端服務,請使用 Method: backendServices.insert
或 Method: backendServices.update
API 呼叫。
請使用下列其中一個 API 呼叫:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
將以下程式碼片段新增至 JSON 要求主體:
"cdnPolicy": { "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)
請使用下列其中一個值取代 CACHE_MODE
:
CACHE_ALL_STATIC
(預設):如果來源未設定有效的快取標頭,系統會自動快取靜態內容。系統不會快取標示為無法快取的回應 (Cache-Control
回應標頭中的private
或no-store
指令)。如要快取動態內容,內容必須包含有效的快取標頭。USE_ORIGIN_HEADERS
:需要原始來源設定有效的快取標頭,才能快取內容。沒有這些標頭的回應不會在 Google 邊緣快取,且每次要求都需要完整前往原始位置,可能會影響效能,並增加原始伺服器的負載。FORCE_CACHE_ALL
:快取所有內容 (也就是成功回應),忽略Cache-Control
回應標頭中的任何private
或no-store
指示。這麼做可能會導致快取個別使用者 (可識別使用者身分) 的私人內容。建議您僅在不會提供私人或動態內容的後端中啟用這項功能,例如 Cloud Storage 值區。