變更快取模式

本頁面提供如何使用 Cloud CDN 變更快取模式的操作說明。快取模式有助於您設定 Cloud CDN 快取內容的方式。

事前準備

  • 瞭解快取模式和靜態內容

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

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

    gcloud components update
    

設定快取模式

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

控制台

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

    前往「Load balancing」(負載平衡) 頁面

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

gcloud

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

如為後端 bucket,請使用 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 bucket。請勿在提供私人或動態內容的後端中啟用這項功能。

API

如為後端 bucket,請使用 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 bucket。