簡體   English   中英

如何在亞馬遜雲端設置 Cache-Control Header?

[英]How to set Cache-Control Header in amazon cloudfront?

我有一個亞馬遜雲端發行版,它為我的 CDN 創建了一個“來源”。 在我的行為中,我設置了最大 TTL、最小 TTL 和默認 TTL。 但是我的響應 header 沒有在重定向的 static 文件中返回 Cache-control header。 如何設置緩存控制? 我需要這個用於谷歌頁面洞察

創建緩存控制的文件

我的 header 回復

緩存控制

您可以在不使用函數的情況下將 Cache-Control header 添加到您的 CloudFront 實例。 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html

  1. Go 到 AWS 控制台並導航到 CloudFront 實例。
  2. Go 到行為選項卡
  3. Select 默認行為和 go 用於編輯該行為的編輯選項
  4. 在那里你可以看到選項 Response headers policy – optional
  5. 您可以使用現有的響應標頭策略或創建一個新的
  6. Go 到 Policies - Response Headers 然后點擊自定義策略下的“Create response header policy”。 如果您有現有政策,請對其進行編輯。
  7. 就我而言,我已經有一個政策,所以我選擇編輯該政策
  8. Go 用於自定義標頭 – 可選
  9. 添加 Cache-Control header 以及您想要的 max-age 值。 如果需要,可以將此值設置為覆蓋原點。

自定義標頭 UI 參考

  1. 在您的默認行為中,根據您剛剛創建或編輯的響應標頭策略 select。

在此處輸入圖像描述

正如James所提到的,您在創建分配時在 CF 設置中看到的 MAX TTL、MIN TTL 等定義了 CloudFront 分配和 Origin 的緩存行為。 換言之,CloudFront 應在檢查源之前將資產保留在邊緣站點中的時間。 例如,如果您有一個 S3 存儲桶作為源,然后有一個 CloudFront 分配,通過設置 MAX TTL Min TTL 等,您可以告訴 CloudFront 它應該多久檢查一次源(在本例中為 S3)以進行更改。 您可以在 AWS Docs 中了解更多信息。 管理內容在邊緣緩存中停留的時間(到期)

在上面的示例中,您可以轉到 S3 存儲桶並設置Cache-Control 欲了解更多信息,該怎么辦呢讀這一個

您可以: 1. 配置 origin 以添加 Cache-Control 標頭作為響應。 或 2. 使用 Lambda@edge(查看器響應,因為您只想將其用於 google 頁面見解)在響應中添加 Cache-control 標頭。 示例: https : //github.com/jkrnak/serverless-lambda-at-edge/blob/master/handler.js

定義 TTL 不添加任何緩存控制頭,它用於考慮需要緩存多長時間。

您可以在不使用函數的情況下向 CloudFront 實例添加 Cache-Control 標頭。

  • 轉到 AWS 控制台並導航到 CloudFront 實例
  • 轉到策略 -> 響應頭並單擊自定義策略下的“創建響應頭策略”。 如果您有現有的政策,請編輯它。
  • 在自定義標題下的下一個屏幕中,添加Cache-Control標題以及您想要的最大年齡值。 如果需要,可以將此值設置為覆蓋原點。
  • 現在轉到您的分布並導航到行為選項卡。
  • 在您的默認行為中,在 Response headers 策略下選擇您剛剛創建的那個。

在此處輸入圖片說明

您的所有響應現在都將包含您設置的緩存標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM