Zarządzanie wygasaniem zawartości internetowej w usłudze Azure Content Delivery Network
Ważne
Usługa Azure CDN Standard firmy Microsoft (klasyczna) zostanie wycofana 30 września 2027 r. Aby uniknąć zakłóceń w działaniu usługi, należy przeprowadzić migrację profilów usługi Azure CDN Standard z usługi Microsoft (klasycznej) do warstwy Azure Front Door Standard lub Premium do 30 września 2027 r. Aby uzyskać więcej informacji, zobacz Azure CDN Standard from Microsoft (classic) retirement (Wycofanie usługi Azure CDN w warstwie Standardowa z firmy Microsoft (wersja klasyczna).
Usługa Azure CDN z Edgio zostanie wycofana 15 stycznia 2025 r. Przed tą datą należy przeprowadzić migrację obciążenia do usługi Azure Front Door, aby uniknąć przerw w działaniu usługi. Aby uzyskać więcej informacji, zobacz Azure CDN from Edgio retirement FAQ (Usługa Azure CDN from Edgio retirement FAQ).
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 buforowania są dostępne tylko dla profilów usługi 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:
W witrynie Azure Portal wybierz profil sieci dostarczania zawartości, a następnie wybierz punkt końcowy serwera internetowego.
W lewym okienku w obszarze Ustawienia zaznacz pole Reguły buforowania.
Zostanie wyświetlona strona Reguły buforowania.
Aby ustawić nagłówki cache-control serwera internetowego przy użyciu globalnych reguł buforowania:
W obszarze Globalne reguły buforowania ustaw ustawienie Zachowanie buforowania ciągów zapytania na Ignoruj ciągi zapytania i ustaw opcję Zachowanie buforowania na Przesłoń.
W polu Czas wygaśnięcia pamięci podręcznej wprowadź wartość 3600 w polu Sekundy lub 1 w polu Godziny .
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 HTTPExpires
wysyłane przez serwer pochodzenia określony przez punkt końcowy.Wybierz pozycję Zapisz.
Aby ustawić nagłówki kontroli pamięci podręcznej pliku serwera sieci Web przy użyciu niestandardowych reguł buforowania:
W obszarze Niestandardowe reguły buforowania utwórz dwa warunki dopasowania:
Dla pierwszego warunku dopasowania ustaw wartość Warunek dopasowania na Ścieżkę i wprowadź wartość
/webfolder1/*
Match (Dopasowanie). Ustaw opcję Zachowanie buforowania na Wartość Przesłoń i wprowadź wartość 4 w polu Dni .Dla drugiego warunku dopasowania ustaw wartość Warunek dopasowania na Ścieżkę i wprowadź wartość
/webfolder1/file1.txt
Match (Dopasowanie). Ustaw opcję Zachowanie buforowania na wartość Przesłoń i wprowadź wartość 2 w polu Dni .
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 dlafile1.txt
pliku i ustawia czas trwania pamięci podręcznej w ciągu dwóch dni.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-Control
max-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:
- Sprawdź, czy zawartość jest oznaczona jako pamięć podręczna, ustawiając wartość
HttpCacheability
.Public
- 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łówkaLast-Modified
. - Wywołaj metodę
SetETag
, aby ustawić wartość nagłówkaETag
.
- Wywołaj metodę
- Opcjonalnie określ czas wygaśnięcia pamięci podręcznej, wywołując polecenie
SetExpires
, aby ustawić wartość nagłówkaExpires
. 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 lub Fiddler , aby zbadać nagłówki odpowiedzi.