如何在 CloudFront 中根據 HTTP 標頭來快取內容?

上次更新日期:2022 年 4 月 14 日

我想要在 Amazon CloudFront 中根據 HTTP 標頭來快取內容。該如何進行?

簡短描述

若要將您的分佈設定為根據 HTTP 標頭來快取內容,請執行以下操作之一:

  • 建立快取政策並將其連接到分佈中的行為
  • 編輯分佈中現有舊式快取行為的設定

最佳實務是建立新的快取政策來快取內容。您可以使用新的快取政策來自訂組態,而不是編輯舊式分佈。

重要提示:您無法將 CloudFront 設定為根據標頭類型連接主機 (若為 Amazon S3 來源)、Proxy-AuthorizationTE升級的請求標頭值來進行快取。如需詳細資訊,請參閲選取要快取所依據的標頭

解決方案

建立快取政策

  1. 使用 CloudFront 主控台建立快取政策
  2. TTL settings (TTL 設定) 底下,輸入 Minimum TTL (最小 TTL)、Maximum TTL (最大 TTL) 和 Default TTL (預設 TTL) 的值,以管理 CloudFront 快取物件的時間量。依預設,所快取的檔案會在 24 小時後自動過期。
  3. Cache key settings (快取金鑰設定) 底下,為 Headers (標頭) 選擇 Include the following headers (包含下列標頭)。
  4. Add header (新增標頭) 下拉式清單中選取您的標頭,或選取 Add custom (新增自訂) 以新增自訂標頭。
  5. 根據您要將政策附加至的行為的要求,完成快取政策的所有其他設定。然後選擇 Create (建立)。
  6. 在建立快取政策後,請依照步驟將政策連接至 CloudFront 分佈的相關行為

編輯現有行為的設定

  1. 開啟 CloudFront 主控台,然後選擇您的分佈。
  2. 選擇 Behaviors (行為) 標籤。然後,選擇要根據所選 HTTP 標頭來快取內容的路徑。
  3. 選擇 Edit (編輯)。
  4. Cache key and origin requests (快取金鑰與來源請求) 底下,確認您已選取 Legacy cache settings (舊式快取設定)。
    如果未選取 Legacy cache settings (舊式快取設定),請依照上一節中的步驟建立快取政策。
    -或-
    如果已選取 Legacy cache settings (舊式快取設定),請執行以下操作:
    Headers (標頭) 選取 Include (包含) 下列標頭。
    Add header (新增標頭) 下拉式清單中,選取要快取的標頭。
  5. 若要管理 CloudFront 快取的快取持續時間,請在 Object Caching (物件快取) 底下選擇 Customize (自訂)。然後在 Minimum TTL (最小 TTL)、Default TTL (預設 TTL) 和 Maximum TTL (最大 TTL) 欄位中指定值。如需詳細資訊,請參閲物件快取
  6. 選擇 Save Changes (儲存變更)。

注意:若要變更個別檔案的快取持續時間,請設定來源以新增 Cache-Control max-age 指令、Cache-Control s-maxage 指令或過期標頭。如需詳細資訊,請參閲使用標頭來控制個別物件的快取持續時間

針對 Amazon Simple Storage Service (Amazon S3) 來源,新增標頭值的中繼資料,以管理個別物件的快取過期。如需詳細資訊,請參閲使用 Amazon S3 主控台向物件新增標頭