變更快取模式

本頁面提供使用 Cloud CDN 變更快取模式的操作說明。您可以透過快取模式設定 Cloud CDN 快取內容的方式。

事前準備

  • 請參閱快取模式和靜態內容

  • 請確認已啟用 Cloud CDN。如需操作說明,請參閱「使用 Cloud CDN」。

  • 視需要更新至最新版 Google Cloud CLI:

    gcloud components update
    

設定快取模式

如要為啟用 Cloud CDN 的後端設定快取模式,請執行下列操作:

控制台

  1. 前往 Google Cloud 控制台的「Load Balancing」(負載平衡) 頁面。

    前往「負載平衡」頁面

  2. 按一下外部應用程式負載平衡器的名稱。
  3. 按一下「編輯」圖示
  4. 在「後端設定」中選取後端,然後按一下「編輯」圖示
  5. 確認已選取「Enable Cloud CDN」
  6. 在「快取模式」下方,選取下列任一選項:
    • 快取靜態內容 (建議做法):靜態內容是指每位使用者都不會變更的網站資產。靜態內容會根據回應中的 Content-Type 建立。詳情請參閱「靜態內容」。
    • 使用基於 Cache-Control 標頭的來源設定:快取回應標頭中含有有效快取指令的回應。
    • 強制快取所有內容:快取來源提供的所有成功內容,忽略任何 privateno-store 指令。
  7. 按一下 [儲存]

gcloud

針對後端服務,請使用 gcloud compute backend-services creategcloud compute backend-services update 指令,並加上 --cache-mode 旗標。

如為後端資料集,請使用 gcloud compute backend-buckets creategcloud 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 回應標頭中的 privateno-store 指令)。如要快取動態內容,內容必須包含有效的快取標頭

  • USE_ORIGIN_HEADERS:需要原始來源設定有效的快取標頭,才能快取內容。沒有這些標頭的回應不會在 Google 邊緣快取,且每次要求都需要完整前往原始位置,可能會影響效能,並增加原始伺服器的負載。

  • FORCE_CACHE_ALL:快取所有內容 (也就是成功回應),忽略 Cache-Control 回應標頭中的任何 privateno-store 指示。這麼做可能會導致快取個別使用者 (可識別使用者身分) 的私人內容。建議您僅在不會提供私人或動態內容的後端中啟用這項功能,例如 Cloud Storage 值區。請勿在提供私人或動態內容的後端中啟用這項功能。

API

如要使用後端資料集,請使用 Method: backendBuckets.insertMethod: backendBuckets.update API 呼叫。

如為後端服務,請使用 Method: backendServices.insertMethod: 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 回應標頭中的 privateno-store 指令)。如要快取動態內容,內容必須包含有效的快取標頭

  • USE_ORIGIN_HEADERS:需要原始來源設定有效的快取標頭,才能快取內容。沒有這些標頭的回應不會在 Google 邊緣快取,且每次要求都需要完整前往原始位置,可能會影響效能,並增加原始伺服器的負載。

  • FORCE_CACHE_ALL:快取所有內容 (也就是成功回應),忽略 Cache-Control 回應標頭中的任何 privateno-store 指示。這麼做可能會導致快取個別使用者 (可識別使用者身分) 的私人內容。建議您僅在不會提供私人或動態內容的後端中啟用這項功能,例如 Cloud Storage 值區。