本頁面說明如何自訂 Cloud CDN 快取金鑰。
變更快取金鑰設定後,如果新要求開始使用與舊有快取金鑰項目不同的快取金鑰,快取命中率可能會突然下降。同樣地,若新要求使用的金鑰與舊有快取金鑰相同,變更快取金鑰建立者則不一定會撤銷快取項目。如要撤銷現有的快取項目,請參閱「撤銷快取內容」。
事前準備
本頁面假設您對 Cloud CDN、Cloud CDN 快取金鑰和負載平衡的後端服務已有基本認識。建議先參閱這些頁面,再繼續操作。
啟用 Cloud CDN 並自訂快取金鑰
按照這些說明操作,就能為負載平衡的後端服務啟用 Cloud CDN,並自訂快取金鑰。如果還沒有可做為來源的負載平衡器,請參閱外部應用程式負載平衡器說明文件中的操作說明建立一個。
後端 bucket 不會在快取金鑰中加入通訊協定或主機,因為這些不會影響 Cloud Storage bucket 內物件的參照方式。不過,這些要求包含一組 Cloud Storage 專屬的查詢字串參數,可能會影響回應,且可透過自訂參數名稱清單擴充。
控制台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下要更新的來源名稱。
點選「Edit」(編輯)。
如果來源已連結多個負載平衡器,請從「Edit」(編輯) 選單中選取要更新的負載平衡器。
如要展開「Cache performance」(快取效能) 部分,請點選「Next」(下一步)。
在「Cache key」(快取金鑰) 部分,選取「Custom」(自訂)。
在「Cache key components」(快取金鑰元件) 部分,系統預設會選取所有元件。取消勾選要從快取金鑰中排除的所有元件。
按一下「Done」(完成)。
gcloud
如要在後端服務的快取金鑰中排除一或多個元件,請使用 gcloud compute backend-services update 指令。
gcloud compute backend-services update BACKEND_SERVICE \
--no-cache-key-include-protocol \
--no-cache-key-include-host \
--no-cache-key-include-query-string
如為後端 bucket,請使用 gcloud compute backend-buckets update 指令。
API
如要在快取金鑰中排除一或多個元件,請在 cdnPolicy 的 cacheKeyPolicy 部分,為 backendServices 資源指定設定選項。
如為後端服務,請使用 backendServices.update 方法 API 呼叫。
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
如為後端 bucket,請使用 backendBuckets.update 方法 API 呼叫。
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
在 JSON 要求主體中新增下列程式碼片段:
"cdnPolicy": {
"cacheKeyPolicy": [
{
"includeProtocol": false,
"includeHost": false,
"includeQueryString": false
}
]
}
更新快取金鑰以新增通訊協定、主機和查詢字串
根據預設,設定為使用 Cloud CDN 的後端服務會在快取金鑰中加入要求 URI 的所有元件。如果先前已指出要排除一或多個元件,請按照下列步驟重新納入這些元件。
按照下列說明操作,就能針對已啟用 Cloud CDN 的現有後端服務,將通訊協定、主機和查詢字串新增至快取金鑰。
控制台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下要更新的來源名稱。
點選「Edit」(編輯)。
如果來源已連結多個負載平衡器,請從「Edit」(編輯) 選單中選取要更新的負載平衡器。
如要展開「Cache performance」(快取效能) 部分,請點選「Next」(下一步)。
在「Cache key」(快取金鑰) 部分,選取「Custom」(自訂)。
在「Cache key components」(快取金鑰元件) 部分,勾選「Protocol」(通訊協定)、「Host」(主機) 和「Query string」(查詢字串) 核取方塊。
按一下「Done」(完成)。
gcloud
如要在後端服務的快取金鑰中新增一或多個元件,請使用 gcloud compute backend-services update 指令。
未指定的旗標則保持不變。
gcloud compute backend-services update BACKEND_SERVICE \
--cache-key-include-protocol \
--cache-key-include-host \
--cache-key-include-query-string
API
如要在快取金鑰中新增一或多個元件,請在 cdnPolicy 的 cacheKeyPolicy 部分,為 backendServices 資源指定設定選項。
在 JSON 要求主體中新增下列程式碼片段:
"cdnPolicy": {
"cacheKeyPolicy": [
{
"includeProtocol": true,
"includeHost": true,
"includeQueryString": true
}
]
}
更新快取金鑰以使用查詢字串參數的納入或排除清單
按照這些說明操作,就能將 Cloud CDN 快取金鑰設為使用查詢字串參數的納入或排除清單。
控制台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下要更新的來源名稱。
點選「Edit」(編輯)。
如果來源已連結多個負載平衡器,請從「Edit」(編輯) 選單中選取要更新的負載平衡器。
如要展開「Cache performance」(快取效能) 部分,請點選「Next」(下一步)。
在「Cache key」(快取金鑰) 部分,選取「Custom」(自訂)。
在「Cache key components」(快取金鑰元件) 部分,勾選「Query string」(查詢字串) 核取方塊。然後選取下列任一選項:
如要指定必須包含在快取金鑰中的查詢字串參數,請選取「Include only selected」(僅含所選項目)。
如要將所列查詢字串參數以外的所有參數加入快取金鑰中,請選取「Include all but selected」(包含所選項目以外的全部項目)。
點選「Add parameter」(新增參數),然後指定參數。
按一下「Done」(完成)。
gcloud
如要指定後端服務的納入或排除清單,請使用 gcloud compute backend-services
update 指令指定查詢字串參數。
使用這項指令即可將查詢字串參數 user 設為後端服務的納入清單。
gcloud compute backend-services update BACKEND_SERVICE \
--cache-key-include-query-string \
--cache-key-query-string-whitelist user
使用這項指令即可將查詢字串參數 user 設為後端服務的排除清單。
gcloud compute backend-services update BACKEND_SERVICE \
--cache-key-include-query-string \
--cache-key-query-string-blacklist user
使用這項指令即可將查詢字串參數 user 設為後端 bucket 的納入清單。
gcloud compute backend-buckets update BACKEND_BUCKET \
--cache-key-query-string-whitelist user
API
如要指定後端服務的納入或排除清單,請在 cdnPolicy 的 cacheKeyPolicy 部分,為 backendServices 資源指定查詢字串參數。
如要指定納入清單,請在 JSON 要求主體中新增下列程式碼片段:
"cdnPolicy": {
"cacheKeyPolicy": [
{
"queryStringWhitelist": [QUERY_STRINGS]
}
]
}
將 QUERY_STRINGS 替換為以半形逗號分隔的查詢字串參數清單。
如要指定排除清單,請加入下列程式碼片段:
"cdnPolicy": {
"cacheKeyPolicy": [
{
"queryStringBlacklist": [QUERY_STRINGS]
}
]
}
更新快取金鑰以使用 HTTP 標頭
按照這些說明操作,就能將 Cloud CDN 快取金鑰設為使用 HTTP 標頭,其中可包含允許的自訂變數。
控制台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下要更新的來源名稱。/
點選「Edit」(編輯)。
如果來源已連結多個負載平衡器,請從「Edit」(編輯) 選單中選取要更新的負載平衡器。
如要展開「Cache performance」(快取效能) 部分,請點選「Next」(下一步)。
在「Cache key」(快取金鑰) 部分,選取「Custom」(自訂)。
在「Cache key components」(快取金鑰元件) 部分,勾選「HTTP headers」(HTTP 標頭) 核取方塊。
如要指定一或多個 HTTP 標頭,請按一下「Add HTTP header」(新增 HTTP 標頭)。
按一下「Done」(完成)。
gcloud
使用 gcloud compute backend-services update 指令,並加上 cache-key-include-http-header 選項。
gcloud compute backend-services update BACKEND_SERVICE \
--cache-key-include-http-header=[HEADER_FIELD_NAMES,...]
將 HEADER_FIELD_NAMES 替換為以半形逗號分隔的標頭名稱清單。
API
請在 cdnPolicy 的 cacheKeyPolicy 部分,為 backendServices 資源指定快取金鑰的 HTTP 標頭。
在 JSON 要求主體中新增下列程式碼片段:
"cdnPolicy": {
"cacheKeyPolicy": [
{
"includeHttpHeaders": [HEADER_FIELD_NAMES]
}
]
}
將 HEADER_FIELD_NAMES 替換為以半形逗號分隔的標頭名稱清單。
如果系統將指定的快取金鑰標頭也指定為自訂要求標頭,就無法使用完整的變數範圍。
詳情請參閱「使用要求標頭的自訂變數」。
更新快取金鑰以使用已命名 Cookie
按照這些說明操作,就能將 Cloud CDN 快取金鑰設為使用 HTTP Cookie。
控制台
前往 Google Cloud 控制台的「Cloud CDN」頁面。
按一下要更新的來源名稱。
點選「Edit」(編輯)。
如果來源已連結多個負載平衡器,請從「Edit」(編輯) 選單中選取要更新的負載平衡器。
如要展開「Cache performance」(快取效能) 部分,請點選「Next」(下一步)。
在「Cache key」(快取金鑰) 部分,選取「Custom」(自訂)。
在「Cache key components」(快取金鑰元件) 部分,勾選「Named cookies」(已命名 Cookie) 核取方塊。
如要指定一或多個 Cookie,請按一下「Add named cookie」(新增已命名 Cookie)。
按一下「Done」(完成)。
gcloud
使用 gcloud compute backend-services update 指令,並加上 cache-key-include-named-cookie 選項。
gcloud compute backend-services update BACKEND_SERVICE \
--cache-key-include-named-cookie=[NAMED_COOKIES,...]
將 NAMED_COOKIES 替換為以半形逗號分隔的已命名 Cookie 清單。
API
如要指定後端服務的納入或排除清單,請在 cdnPolicy 的 cacheKeyPolicy 部分,為 backendServices 資源指定查詢字串參數。
如要指定納入清單,請在 JSON 要求主體中新增下列程式碼片段:
"cdnPolicy": {
"cacheKeyPolicy": [
{
"includeNamedCookies": [NAMED_COOKIES]
}
]
}
將 NAMED_COOKIES 替換為以半形逗號分隔的查詢字串參數清單。
後續步驟
- 如要確認 Cloud CDN 是否從快取提供回應,請參閱「快取的記錄和指標」。