Správa platnosti webového obsahu v Azure CDN

soubory z veřejně dostupných webových serverů můžou být uloženy do mezipaměti v Azure Content Delivery Network (CDN), dokud neuplyne jejich doba do provozu (TTL). Hodnota TTL je určena Cache-Control hlavičkou v odpovědi HTTP ze zdrojového serveru. tento článek popisuje, jak nastavit Cache-Control záhlaví pro funkci Web Apps Microsoft Azure App Service, Cloud Services Azure, ASP.NET aplikací a Internetová informační službach lokalitách (IIS), které jsou nakonfigurované podobně. Hlavičku můžete nastavit Cache-Control buď pomocí konfiguračních souborů, nebo prostřednictvím kódu programu.

nastavení mezipaměti můžete také ovládat z Azure Portal nastavením CDN pravidla ukládání do mezipaměti. Pokud vytvoříte jedno nebo více pravidel pro ukládání do mezipaměti a nakonfigurujete jejich chování ukládání do mezipaměti pro přepsání nebo obejít mezipaměť, je původní nastavení ukládání do mezipaměti popsané v tomto článku ignorováno. Informace o obecných konceptech mezipaměti najdete v tématu Jak funguje ukládání do mezipaměti.

Tip

Můžete zvolit, aby se pro soubor nestavila hodnota TTL. v takovém případě Azure CDN automaticky použije výchozí hodnotu TTL 7 dní, pokud jste nenastavili pravidla ukládání do mezipaměti v Azure Portal. Výchozí hodnota TTL se vztahuje pouze na obecné optimalizace doručování webů. Pro optimalizace velkých souborů je výchozí hodnota TTL jeden den a optimalizace datových proudů médií je výchozí hodnota TTL jeden rok.

další informace o tom, jak Azure CDN funguje pro urychlení přístupu k souborům a dalším prostředkům, najdete v tématu přehled Azure Content Delivery Network.

nastavení hlaviček Cache-Control pomocí pravidel ukládání do mezipaměti CDN

Upřednostňovanou metodou pro nastavení hlavičky webového serveru Cache-Control je použití pravidel ukládání do mezipaměti v Azure Portal. další informace o CDN pravidel ukládání do mezipaměti najdete v tématu Azure CDN řízení chování při ukládání do mezipaměti pomocí pravidel ukládání domezipaměti.

Poznámka

pravidla Ukládání do mezipaměti jsou dostupná jenom pro Azure CDN standard od Verizon a Azure CDN standard z profilů Akamai . pro Azure CDN Premium z profilů Verizon musíte použít modul pravidel Azure CDN na portálu pro správu pro podobné funkce.

přechod na stránku pravidla pro ukládání do mezipaměti CDN:

  1. v Azure Portal vyberte profil CDN a pak vyberte koncový bod webového serveru.

  2. V levém podokně v části Nastavení vyberte Pravidla ukládání do mezipaměti.

    tlačítko pravidla ukládání CDN do mezipaměti

    Zobrazí se stránka Pravidla ukládání do mezipaměti.

    stránka ukládání do mezipaměti CDN

Nastavení hlaviček Cache-Control webového serveru pomocí globálních pravidel ukládání do mezipaměti:

  1. v části globální pravidla ukládání do mezipaměti nastavte chování při ukládání řetězce dotazu na ignorovat řetězce dotazů a nastavte chování Ukládání do mezipaměti pro přepsání.

  2. V poli Doba vypršení platnosti mezipaměti zadejte 3600 do pole sekund nebo 1 v poli hodiny .

    příklad CDN globální pravidla pro ukládání do mezipaměti

    Toto globální pravidlo ukládání do mezipaměti nastavuje dobu trvání mezipaměti jednu hodinu a ovlivňuje všechny požadavky na koncový bod. Přepíše všechny Cache-Control Expires hlavičky protokolu HTTP, které jsou odesílány ze zdrojového serveru zadaného koncovým bodem.

  3. Vyberte Uložit.

Nastavení hlaviček souboru webového serveru Cache-Control pomocí vlastních pravidel ukládání do mezipaměti:

  1. V části vlastní pravidla ukládání do mezipaměti vytvořte dvě podmínky shody:

    a. U první podmínky shody nastavte podmínku Match na path a zadejte /webfolder1/* hodnotu shody. nastavte chování Ukládání do mezipaměti pro přepsání a do pole dnů zadejte 4.

    b. U podmínky druhé shody nastavte podmínku Match na path a zadejte /webfolder1/file1.txt hodnotu shody. nastavte chování Ukládání do mezipaměti pro přepsání a do pole dnů zadejte 2.

    příklad CDN vlastní pravidla ukládání do mezipaměti

    První vlastní pravidlo ukládání do mezipaměti nastaví dobu trvání mezipaměti pro všechny soubory ve /webfolder1 složce na zdrojovém serveru určeném vaším koncovým bodem na 4 dny. Druhé pravidlo přepíše první pravidlo file1.txt pouze pro soubor a nastaví dobu trvání mezipaměti pro dva dny.

  2. Vyberte Uložit.

Nastavení hlaviček Cache-Control pomocí konfiguračních souborů

Pro statický obsah, jako jsou obrázky a šablony stylů, můžete řídit četnost aktualizace úpravou applicationHost.config nebo Web.config konfiguračních souborů pro webovou aplikaci. Chcete-li nastavit Cache-Control hlavičku obsahu, použijte <system.webServer>/<staticContent>/<clientCache> prvek v obou souborech.

Používání ApplicationHost.configch souborů

Soubor ApplicationHost.config je kořenovým souborem konfiguračního systému služby IIS. Konfigurační nastavení v souboru ApplicationHost.config ovlivňují všechny aplikace v lokalitě, ale jsou přepsány nastavením všech Web.config souborů, které existují pro webovou aplikaci.

Používání Web.configch souborů

Pomocí souboru Web.config můžete přizpůsobit způsob, jakým se chová celá webová aplikace nebo konkrétní adresář ve vaší webové aplikaci. Obvykle máte alespoň jeden Web.config soubor v kořenové složce vaší webové aplikace. Pro každý soubor Web.config v konkrétní složce má nastavení konfigurace vliv na vše v této složce a jejích podsložkách, pokud nejsou přepsána na úrovni podsložky jiným souborem Web.config .

Například můžete nastavit <clientCache> prvek v souboru Web.config v kořenové složce webové aplikace tak, aby veškerý statický obsah do mezipaměti po dobu tří dní do celého webu. Můžete také přidat soubor Web.config do podsložky s více obsahy proměnné (například \frequent ) a nastavit jeho <clientCache> element tak, aby obsah podsložky v mezipaměti po dobu šesti hodin. Výsledkem je, že obsah na celém webu je uložen do mezipaměti po dobu tří dnů, s výjimkou jakéhokoli obsahu v \frequent adresáři, který je uložen do mezipaměti pouze po dobu šesti hodin.

Následující příklad konfiguračního souboru XML ukazuje, jak nastavit <clientCache> prvek pro zadání maximálního stáří tři dny:

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

Chcete-li použít atribut cacheControlMaxAge , je nutné nastavit hodnotu atributu cacheControlMode na UseMaxAge . Toto nastavení způsobilo přidání hlavičky protokolu HTTP a direktivy do Cache-Control: max-age=<nnn> odpovědi. Formát hodnoty TimeSpan pro atribut cacheControlMaxAge je <days>.<hours>:<min>:<sec> . Jeho hodnota je převedena na sekundy a použije se jako hodnota Cache-Control max-age direktivy. Další informace o elementu naleznete <clientCache> v tématu mezipaměť <clientCache> klienta .

Nastavování hlaviček Cache-Control programově

u ASP.NETch aplikací CDN ovládáte chování ukládání do mezipaměti programově nastavením vlastnosti HttpResponse. Cache rozhraní .net API. Informace o vlastnosti HttpResponse. cache naleznete v tématu vlastnost HttpResponse. cache a třídu HttpCachePolicy.

chcete-li obsah aplikace ukládat do mezipaměti v ASP.NET, postupujte podle následujících kroků:

  1. Ověřte, že je obsah označený jako mezipaměť nastavením HttpCacheability na Public .
  2. Nastavte ověřovací modul mezipaměti voláním jedné z následujících HttpCachePolicy metod:
    • Zavolejte SetLastModified k nastavení hodnoty časového razítka pro Last-Modified hlavičku.
    • Zavolejte SetETag na nastavení hodnoty pro ETag záhlaví.
  3. Volitelně můžete zadat čas vypršení platnosti mezipaměti voláním SetExpires pro nastavení hodnoty Expires záhlaví. V opačném případě platí pro použití výchozí heuristiky mezipaměti popsané dříve v tomto dokumentu.

Například pro ukládání obsahu do mezipaměti po dobu jedné hodiny přidejte následující kód jazyka C#:

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

Testování hlavičky Cache-Control

Můžete snadno ověřit nastavení TTL vašeho webového obsahu. Pomocí vývojářských nástrojův prohlížeči otestujte, jestli váš webový obsah obsahuje Cache-Control hlavičku odpovědi. K prohlédnutí hlaviček odpovědi můžete použít také nástroj, jako je wget, postnebo Fiddler .

Další kroky