Zarządzanie wygasaniem zawartości internetowej w usłudze Azure Content Delivery Network

Pliki z publicznie dostępnych serwerów sieci Web pochodzenia mogą być buforowane w usłudze Azure Content Delivery Network do czasu wygaśnięcia (TTL). Czas wygaśnięcia jest określany przez Cache-Control nagłówek w odpowiedzi HTTP z serwera pochodzenia. W tym artykule opisano sposób ustawiania Cache-Control nagłówków dla funkcji Web Apps usługi Microsoft aplikacja systemu Azure Service, Azure Cloud Services, aplikacji ASP.NET i witryn internetowych usług informacyjnych (IIS), z których wszystkie są skonfigurowane podobnie. Nagłówek można ustawić Cache-Control przy użyciu plików konfiguracji lub programowo.

Ustawienia pamięci podręcznej można również kontrolować w witrynie Azure Portal, ustawiając reguły buforowania sieci dostarczania zawartości. Jeśli tworzysz co najmniej jedną regułę buforowania i ustawiasz ich zachowanie buforowania na wartość Zastąp lub Pomiń pamięć podręczną, ustawienia buforowania udostępniane przez źródło omówione w tym artykule są ignorowane. Aby uzyskać informacje na temat ogólnych pojęć związanych z buforowaniem, zobacz Jak działa buforowanie.

Napiwek

Możesz ustawić brak czasu wygaśnięcia w pliku. W takim przypadku usługa Azure Content Delivery Network automatycznie stosuje domyślny czas wygaśnięcia z siedmiu dni, chyba że skonfigurowaliśmy reguły buforowania w witrynie Azure Portal. Ten domyślny czas wygaśnięcia dotyczy tylko ogólnych optymalizacji dostarczania w Internecie. W przypadku dużych optymalizacji plików domyślny czas wygaśnięcia to jeden dzień, a w przypadku optymalizacji przesyłania strumieniowego multimediów domyślny czas wygaśnięcia to jeden rok.

Aby uzyskać więcej informacji na temat działania usługi Azure Content Delivery Network w celu przyspieszenia dostępu do plików i innych zasobów, zobacz Omówienie usługi Azure Content Delivery Network.

Ustawianie nagłówków kontroli pamięci podręcznej przy użyciu reguł buforowania sieci dostarczania zawartości

Preferowaną metodą ustawiania nagłówka Cache-Control serwera internetowego jest użycie reguł buforowania w witrynie Azure Portal. Aby uzyskać więcej informacji na temat reguł buforowania sieci dostarczania zawartości, zobacz Kontrolowanie zachowania buforowania usługi Azure Content Delivery Network przy użyciu reguł buforowania.

Uwaga

Reguły Buforowanie są dostępne tylko dla Usługa Azure CDN w warstwie Standardowa z profilów Edgio. W przypadku profilów usługi Azure CDN Premium from Edgio należy użyć aparatu reguł usługi Azure Content Delivery Network w portalu Zarządzanie , aby uzyskać podobne funkcje.

Aby przejść do strony reguł buforowania usługi CDN:

  1. W witrynie Azure Portal wybierz profil sieci dostarczania zawartości, a następnie wybierz punkt końcowy serwera internetowego.

  2. W lewym okienku w obszarze Ustawienia zaznacz pole Reguły buforowania.

    Zrzut ekranu przedstawiający przycisk reguł buforowania sieci dostarczania zawartości.

    Zostanie wyświetlona strona Reguły buforowania.

    Zrzut ekranu przedstawiający stronę buforowania sieci dostarczania zawartości.

Aby ustawić nagłówki cache-control serwera internetowego przy użyciu globalnych reguł buforowania:

  1. W obszarze Globalne reguły buforowania ustaw zachowanie buforowania ciągów zapytania na Ignoruj ciągi zapytania i ustaw Buforowanie zachowanie na Przesłoń.

  2. W polu Czas wygaśnięcia pamięci podręcznej wprowadź wartość 3600 w polu Sekundy lub 1 w polu Godziny .

    Zrzut ekranu przedstawiający przykład globalnych reguł buforowania sieci dostarczania zawartości.

    Ta globalna reguła buforowania ustawia czas trwania pamięci podręcznej o długości jednej godziny i wpływa na wszystkie żądania do punktu końcowego. Zastępuje wszystkie Cache-Control nagłówki HTTP Expires wysyłane przez serwer pochodzenia określony przez punkt końcowy.

  3. Wybierz pozycję Zapisz.

Aby ustawić nagłówki kontroli pamięci podręcznej pliku serwera sieci Web przy użyciu niestandardowych reguł buforowania:

  1. W obszarze Niestandardowe reguły buforowania utwórz dwa warunki dopasowania:

    1. Dla pierwszego warunku dopasowania ustaw wartość Warunek dopasowania na Ścieżkę i wprowadź wartość /webfolder1/* Match (Dopasowanie). Ustaw Buforowanie zachowanie na Przesłoń i wprowadź wartość 4 w polu Dni.

    2. Dla drugiego warunku dopasowania ustaw wartość Warunek dopasowania na Ścieżkę i wprowadź wartość /webfolder1/file1.txt Match (Dopasowanie). Ustaw Buforowanie zachowanie na Przesłoń i wprowadź wartość 2 w polu Dni.

    Zrzut ekranu przedstawiający przykład niestandardowych reguł buforowania w sieci dostarczania zawartości.

    Pierwsza niestandardowa reguła buforowania ustawia czas trwania pamięci podręcznej przez cztery dni dla wszystkich plików w /webfolder1 folderze na serwerze pochodzenia określonym przez punkt końcowy. Druga reguła zastępuje pierwszą regułę tylko dla file1.txt pliku i ustawia czas trwania pamięci podręcznej w ciągu dwóch dni.

  2. Wybierz pozycję Zapisz.

Ustawianie nagłówków kontroli pamięci podręcznej przy użyciu plików konfiguracji

W przypadku zawartości statycznej, takiej jak obrazy i arkusze stylów, można kontrolować częstotliwość aktualizacji, modyfikując pliki konfiguracji applicationHost.config lub Web.config dla aplikacji internetowej. Aby ustawić Cache-Control nagłówek zawartości, użyj <system.webServer>/<staticContent>/<clientCache> elementu w obu plikach.

Używanie plików ApplicationHost.config

Plik ApplicationHost.config jest plikiem głównym systemu konfiguracji usług IIS. Ustawienia konfiguracji w pliku ApplicationHost.config mają wpływ na wszystkie aplikacje w witrynie, ale są zastępowane przez ustawienia dowolnych plików Web.config , które istnieją dla aplikacji internetowej.

Korzystanie z plików Web.config

Za pomocą pliku Web.config można dostosować sposób działania całej aplikacji internetowej lub określonego katalogu w aplikacji internetowej. Zazwyczaj w folderze głównym aplikacji internetowej jest co najmniej jeden plik Web.config . Dla każdego pliku Web.config w określonym folderze ustawienia konfiguracji mają wpływ na wszystkie elementy w tym folderze i jego podfolderach, chyba że zostaną one zastąpione na poziomie podfolderu przez inny plik Web.config .

Można na przykład ustawić <clientCache> element w pliku Web.config w folderze głównym aplikacji internetowej, aby buforować całą zawartość statyczną w aplikacji internetowej przez trzy dni. Możesz również dodać plik Web.config w podfolderze z większą zawartością zmiennej (na przykład \frequent) i ustawić jego <clientCache> element w celu buforowania zawartości podfolderu przez sześć godzin. Wynikiem netto jest to, że zawartość w całej witrynie internetowej jest buforowana przez trzy dni, z wyjątkiem zawartości w \frequent katalogu, która jest buforowana tylko przez sześć godzin.

Poniższy przykład pliku konfiguracji XML pokazuje, jak ustawić <clientCache> element w celu określenia maksymalnego wieku wynoszącego trzy dni:

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

Aby użyć atrybutu cacheControlMaxAge , należy ustawić wartość atrybutu cacheControlMode na UseMaxAge. To ustawienie spowodowało dodanie nagłówka i dyrektywy HTTP do odpowiedzi . Cache-Control: max-age=<nnn> Format wartości przedziału czasu dla atrybutu cacheControlMaxAge to <days>.<hours>:<min>:<sec>. Jego wartość jest konwertowana na sekundy i jest używana jako wartość Cache-Controlmax-age dyrektywy. Aby uzyskać więcej informacji na temat <clientCache> elementu, zobacz Client Cache <clientCache>.

Programowe ustawianie nagłówków kontroli pamięci podręcznej

W przypadku aplikacji ASP.NET kontrolujesz zachowanie buforowania sieci dostarczania zawartości programowo, ustawiając właściwość HttpResponse.Cache interfejsu API platformy .NET. Aby uzyskać informacje o właściwości HttpResponse.Cache, zobacz HttpResponse.Cache Property (Właściwość HttpResponse.Cache) i HttpCachePolicy Class (Klasa HttpCachePolicy).

Aby programowo buforować zawartość aplikacji w ASP.NET, wykonaj następujące kroki:

  1. Sprawdź, czy zawartość jest oznaczona jako pamięć podręczna, ustawiając wartość HttpCacheability .Public
  2. Ustaw moduł sprawdzania poprawności pamięci podręcznej, wywołując jedną z następujących HttpCachePolicy metod:
    • Wywołaj metodę SetLastModified , aby ustawić wartość znacznika czasu dla nagłówka Last-Modified .
    • Wywołaj metodę SetETag , aby ustawić wartość nagłówka ETag .
  3. Opcjonalnie określ czas wygaśnięcia pamięci podręcznej, wywołując polecenie SetExpires , aby ustawić wartość nagłówka Expires . W przeciwnym razie mają zastosowanie domyślne heurystyki pamięci podręcznej opisane wcześniej w tym dokumencie.

Aby na przykład buforować zawartość przez jedną godzinę, dodaj następujący kod języka C#:

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

Testowanie nagłówka Cache-Control

Możesz łatwo zweryfikować ustawienia czasu wygaśnięcia zawartości internetowej. Korzystając z narzędzi deweloperskich przeglądarki, przetestuj Cache-Control , czy zawartość internetowa zawiera nagłówek odpowiedzi. Możesz również użyć narzędzia, takiego jak wget, Postman lub Fiddler , aby zbadać nagłówki odpowiedzi.

Następne kroki