共用方式為


管理 Azure 內容傳遞網路 中的 Web 內容到期日

從可公開存取的來源網頁伺服器檔案可以在 Azure 內容傳遞網路 中快取,直到其存留時間 (TTL) 經過為止。 TTL 是由 Cache-Control 源伺服器 HTTP 回應中的標頭所決定。 本文說明如何設定 Cache-Control Microsoft Azure App 服務、Azure 雲端服務、ASP.NET 應用程式和 網際網路資訊服務 (IIS) 網站的 Web Apps 功能標頭,這些網站都設定了類似的設定。 您可以使用組態檔或以程式設計方式設定 Cache-Control 標頭。

您也可以設定內容傳遞網路快取規則,以控制來自 Azure 入口網站 的快取設定。 如果您建立一或多個快取規則,並將其快取行為設定為 覆寫略過快取,則會忽略本文所討論的原始提供快取設定。 如需一般快取概念的相關信息,請參閱 快取的運作方式。

提示

您可以選擇在檔案上設定沒有 TTL。 在此情況下,除非您已在 Azure 入口網站 中設定快取規則,否則 Azure 內容傳遞網路 會自動套用預設 TTL 7 天。 此預設 TTL 僅適用於一般 Web 傳遞優化。 對於大型檔案優化,預設TTL為一天,而針對媒體串流優化,預設TTL為一年。

如需 Azure 內容傳遞網路 如何運作以加速檔案和其他資源存取的詳細資訊,請參閱 Azure 內容傳遞網路 概觀

使用內容傳遞網路快取規則設定快取控制標頭

設定網頁伺服器標頭的Cache-Control慣用方法是在 Azure 入口網站 中使用快取規則。 如需內容傳遞網路快取規則的詳細資訊,請參閱使用快取規則控制 Azure 內容傳遞網路 快取行為。

注意

快取規則僅適用於來自 Edgio 配置檔的 Azure CDN 標準。 針對來自 Edgio 配置檔的 Azure CDN 進階版,您必須在管理入口網站中使用 Azure 內容傳遞網路 規則引擎,以取得類似的功能。

若要瀏覽至 CDN 快取規則頁面

  1. 在 Azure 入口網站 中,選取內容傳遞網路配置檔,然後選取網頁伺服器的端點。

  2. 在 設定 下方的左窗格中,選取 [快取規則]。

    內容傳遞網路快取規則按鈕的螢幕快照。

    [快 取規則] 頁面隨即出現。

    內容傳遞網路快取頁面的螢幕快照。

若要使用全域快取規則來設定網頁伺服器的快取控制標頭:

  1. 在 [全域快取規則] 底下,將 [查詢字串快取行為] 設定[忽略查詢字串],並將 [快取行為] 設定為 [覆寫]。

  2. 針對 [ 快取到期期間],在 [ ] 方塊中輸入 3600,或在 [ 小時] 方塊中輸入 1。

    內容傳遞網路全域快取規則範例的螢幕快照。

    此全域快取規則會設定一小時的快取持續時間,並影響端點的所有要求。 它會覆寫端點所指定源伺服器所傳送的任何 Cache-ControlExpires HTTP 標頭。

  3. 選取 [儲存]。

若要使用自定義快取規則來設定網頁伺服器檔案的 Cache-Control 標頭:

  1. 在 [自定義快取規則] 底下,建立兩個比對條件:

    1. 針對第一個比對條件,將 [比對條件] 設定[路徑],然後針對 [比對] 值輸入 /webfolder1/* 將 [快取行為] 設定為 [覆寫],然後在 [天數] 方塊中輸入 4。

    2. 針對第二個比對條件,將 [比對條件] 設定[路徑],然後針對 [比對] 值輸入 /webfolder1/file1.txt 將 [快取行為] 設定為 [覆寫],然後在 [天數] 方塊中輸入 2。

    內容傳遞網路自定義快取規則範例的螢幕快照。

    第一個自定義快取規則會針對端點所指定源伺服器上資料夾中的任何檔案 /webfolder1 ,設定四天的快取持續時間。 第二個規則只會覆寫檔案的第一個規則 file1.txt ,併為其設定兩天的快取持續時間。

  2. 選取 [儲存]。

使用組態檔設定快取控制標頭

針對靜態內容,例如影像和樣式表單,您可以修改 Web 應用程式的 applicationHost.configWeb.config 組態檔來控制更新頻率。 若要設定 Cache-Control 內容的標頭,請使用 <system.webServer>/<staticContent>/<clientCache> 任一檔案中的 元素。

使用 ApplicationHost.config 檔案

ApplicationHost.config 檔案是 IIS 組態系統的根檔案。 ApplicationHost.config 檔案中的組態設定會影響網站上的所有應用程式,但會由任何 Web 應用程式存在的 Web.config 檔案設定寫。

使用 Web.config 檔案

使用 Web.config 檔案,您可以自訂整個 Web 應用程式或 Web 應用程式上特定目錄的行為方式。 一般而言,您在 Web 應用程式的根資料夾中至少有一個 Web.config 檔案。 針對特定資料夾中的每個 Web.config 檔案,組態設定會影響該資料夾及其子資料夾中的所有專案,除非它們是由另一個 Web.config 檔案覆寫於子資料夾層級。

例如,您可以在 <clientCache> Web 應用程式的根資料夾中設定 Web.config 檔案中的元素,以快取 Web 應用程式上所有靜態內容三天。 您也可以在具有更多變數內容的子資料夾中新增 Web.config 檔案, \frequent並設定其 <clientCache> 元素以快取子資料夾的內容六小時。 淨結果是,整個網站上的內容會快取三天,但目錄中的任何內容 \frequent 只會快取六小時。

下列 XML 組態檔範例示範如何設定 <clientCache> 元素,以指定最多三天的存留期:

<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="3.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>

若要使用 cacheControlMaxAge 屬性,您必須將 cacheControlMode 屬性的值設定為 UseMaxAge。 此設定導致 HTTP 標頭和指示詞 Cache-Control: max-age=<nnn>,新增至回應。 cacheControlMaxAge 屬性的時間範圍值格式為 <days>.<hours>:<min>:<sec> 其值會轉換成秒,並做為 指示詞的值 Cache-Controlmax-age 。 如需 專案的詳細資訊 <clientCache> ,請參閱 用戶端快取 <clientCache>

以程式設計方式設定 Cache-Control 標頭

針對 ASP.NET 應用程式,您可以透過設定 .NET API 的 HttpResponse.Cache 屬性,以程式設計方式控制內容傳遞網路快取行為。 如需 HttpResponse.Cache 屬性的相關信息,請參閱 HttpResponse.Cache 屬性HttpCachePolicy 類別

若要以程式設計方式快取 ASP.NET 中的應用程式內容,請遵循下列步驟:

  1. 將 設定HttpCacheabilityPublic為 ,確認內容已標示為可快取。
  2. 呼叫下列 HttpCachePolicy 其中一種方法來設定快取驗證程式:
    • 呼叫 SetLastModified 以設定標頭的 Last-Modified 時間戳值。
    • 呼叫 SetETag 以設定標頭的值 ETag
  3. 或者,呼叫 SetExpires 來設定標頭的值 Expires ,以指定快取到期時間。 否則,本檔先前所述的預設快取啟發學習法就會套用。

例如,若要快取內容一小時,請新增下列 C# 程序代碼:

// Set the caching parameters.
Response.Cache.SetExpires(DateTime.Now.AddHours(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetLastModified(DateTime.Now);

測試 Cache-Control 標頭

您可以輕鬆地驗證 Web 內容的 TTL 設定。 使用瀏覽器的開發人員工具,測試您的 Web 內容包含 Cache-Control 回應標頭。 您也可以使用 wgetPostmanFiddler工具來檢查響應標頭。

後續步驟