Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sieć dostarczania zawartości (content delivery network, CDN) to rozproszona sieć serwerów, która może efektywnie dostarczać treści internetowe do użytkowników. Sieci CDN przechowują buforowane zawartość na serwerach brzegowych, które są blisko użytkowników końcowych, aby zminimalizować opóźnienia.
Sieci CDN są zwykle używane do dostarczania zawartości statycznej, takiej jak obrazy, arkusze stylów, dokumenty, skrypty po stronie klienta i strony HTML. Główne zalety korzystania z sieci CDN to mniejsze opóźnienie i szybsze dostarczanie zawartości użytkownikom, niezależnie od ich lokalizacji względem centrum danych, w którym jest hostowana aplikacja. Sieci CDN mogą również pomóc zmniejszyć obciążenie aplikacji internetowej, ponieważ aplikacja nie musi obsługiwać żądań dotyczących zawartości hostowanej w usłudze CDN.
W Azure Azure Front Door jest globalnym rozwiązaniem usługi CDN do dostarczania zawartości o wysokiej przepustowości hostowanej w Azure lub w dowolnej innej lokalizacji. Warstwy Azure Front Door Standardowa i Premium można skonfigurować tak, aby buforować zawartość na brzegu sieci. Można buforować obiekty ładowane z Azure Blob Storage, aplikacji internetowej, maszyny wirtualnej, a nawet publicznie dostępnego serwera internetowego.
W tym artykule opisano niektóre ogólne najlepsze rozwiązania i zagadnienia dotyczące korzystania z sieci CDN. Aby uzyskać więcej informacji, zobacz dokumentację buforowania przy użyciu usługi Azure Front Door.
Jak i dlaczego używane są sieci CDN
Typowe zastosowania sieci CDN obejmują:
Dostarczanie zasobów statycznych dla aplikacji klienckich, często z witryny internetowej. Te zasoby mogą być obrazami, arkuszami stylów, dokumentami, plikami, skryptami po stronie klienta, stronAMI HTML, fragmentami HTML lub inną zawartością, która nie musi być modyfikowana przez serwer dla każdego żądania. Aplikacja może tworzyć elementy w czasie wykonywania i udostępniać je sieci CDN (na przykład tworząc listę bieżących nagłówków wiadomości), ale nie robi tego dla każdego żądania.
Dostarczanie publicznej, statycznej i udostępnionej zawartości na urządzenia, takie jak telefony komórkowe i tablety. Sama aplikacja jest usługą internetową, która udostępnia interfejs API klientom uruchomionym na różnych urządzeniach. Sieć CDN może również dostarczać klientom statyczne zestawy danych (za pośrednictwem usługi internetowej), na przykład w celu wygenerowania interfejsu użytkownika klienta. Sieć CDN może służyć m.in. do dystrybucji dokumentów JSON lub XML.
Udostępnianie klientom całych witryn internetowych, które zawierają tylko publiczną, statyczną zawartość, bez korzystania z dedykowanych zasobów obliczeniowych.
Przesyłanie strumieniowe plików wideo do klienta na żądanie. Wideo korzysta z małych opóźnień i niezawodnych połączeń zapewnianych przez centra danych, znajdujące się na całym świecie, które oferują połączenia CDN.
Ogólna poprawa komfortu pracy użytkowników, zwłaszcza w przypadkach, gdy mieszkają oni daleko od centrum danych hostującego aplikację. Ci użytkownicy mogą w przeciwnym razie doświadczyć większego opóźnienia. Duża część całkowitego rozmiaru zawartości w aplikacji internetowej jest często statyczna, a użycie sieci CDN może pomóc w utrzymaniu wydajności i ogólnego środowiska użytkownika przy jednoczesnym wyeliminowaniu wymagania wdrożenia aplikacji w wielu centrach danych. Aby uzyskać listę lokalizacji brzegowych usługi Azure Front Door, zobacz artykuł Lokalizacje POP platformy Azure Front Door według regionów.
Wspieranie rozwiązań IoT (Internetu rzeczy). Ze względu na ogromną liczbę różnych urządzeń należących do rozwiązania IoT aplikacja może łatwo ulec przeciążeniu w przypadku konieczności dystrybucji aktualizacji oprogramowania układowego bezpośrednio do każdego urządzenia.
Radzenie sobie ze szczytami i wzrostami zapotrzebowania bez konieczności skalowania aplikacji, co pozwala uniknąć wzrostu kosztów działania. Na przykład po wydaniu aktualizacji systemu operacyjnego dla urządzenia sprzętowego, takiego jak konkretny model routera, lub urządzenia konsumenckiego, takiego jak smart TV, istnieje ogromny szczyt zapotrzebowania, ponieważ jest pobierany przez miliony użytkowników i urządzeń w krótkim okresie.
Wyzwania
Planując korzystanie z sieci CDN, należy wziąć pod uwagę kilka kwestii.
Wdrożenie. Należy określić źródło zawartości pobieranej przez sieć CDN oraz ustalić, czy zawartość ma zostać wdrożona w kolejnych systemach magazynowych. Rozważ proces wdrażania zawartości statycznej i zasobów. Na przykład może być konieczne zaimplementowanie oddzielnego kroku w celu załadowania zawartości do Azure Blob Storage.
Obsługa wersji i kontrola pamięci podręcznej. Zastanów się, jak zaktualizować zawartość statyczną i wdrożyć nowe wersje. Zrozumienie, jak sieć CDN realizuje buforowanie i czas życia (TTL), jest kluczowe. W przypadku usługi Azure Front Door zobacz Buforowanie za pomocą usługi Azure Front Door.
Testowanie. Przeprowadzenie testów lokalnych ustawień sieci CDN podczas tworzenia i testowania aplikacji w środowisku lokalnym lub przejściowym może być trudne.
Optymalizacja wyszukiwarek (SEO). Podczas korzystania z sieci CDN taka zawartość, jak obrazy i dokumenty, jest udostępniana z innej domeny. Może to mieć wpływ na optymalizację wyszukiwania tej zawartości.
Bezpieczeństwo zawartości. Nie wszystkie sieci CDN zapewniają kontrolę dostępu opartą na tożsamościach dla zawartości. Zapora aplikacji internetowych (WAF) w usłudze Azure Front Door chroni aplikacje przed typowymi atakami wykorzystującymi luki w zabezpieczeniach, a zabezpieczenia źródła pochodzenia zapobiegają omijaniu usługi Front Door przez ruch. Te funkcje nie zastępują autoryzacji na poziomie aplikacji dla zawartości prywatnej. Aby uzyskać więcej informacji, zobacz Web Application Firewall w usłudze Azure Front Door i Zabezpieczanie ruchu do źródeł usługi Azure Front Door.
Zabezpieczenia klientów. Klienci mogą łączyć się ze środowiska, które nie zezwala na dostęp do zasobów w usłudze CDN. Mogą to być środowiska z wdrożonymi zabezpieczeniami, w których dostęp został ograniczony tylko do zestawu znanych źródeł, lub takie, w których ładowanie zasobów jest możliwe tylko z tego samego źródła co strona. Obsługa tych przypadków wymaga implementacji rezerwowej.
Odporność. Sieć CDN stanowi potencjalny pojedynczy punkt awarii dla aplikacji.
Scenariusze, w których sieć CDN może być mniej przydatna, obejmują:
Jeśli zawartość ma niski współczynnik trafień, dostęp do zawartości może być uzyskiwany tylko kilka razy, gdy jest on prawidłowy (określony przez ustawienie czasu wygaśnięcia).
Jeśli dane są prywatne, na przykład w dużych przedsiębiorstwach lub ekosystemach łańcucha dostaw.
Ogólne wskazówki i dobre rozwiązania
Korzystanie z sieci CDN to dobry sposób na ograniczenie obciążenia aplikacji oraz zwiększenie dostępności i wydajności. Należy rozważyć przyjęcie tego rozwiązania dla odpowiedniej zawartości i zasobów używanych przez aplikację. Projektując strategię korzystania z sieci CDN, należy uwzględnić kwestie opisane w poniższych sekcjach.
Wdrożenie
Zawartość statyczna może wymagać aprowizacji i wdrożenia niezależnie od aplikacji, jeśli nie dołączysz jej do pakietu lub procesu wdrażania aplikacji. Rozważ, jak ma to wpływ na podejście do przechowywania wersji używane do zarządzania zarówno składnikami aplikacji, jak i zawartością zasobów statycznych.
Warto rozważyć użycie metod minifikacji i tworzenia pakietów, aby zmniejszyć czas ładowania. Tworzenie pakietów pozwala łączyć wiele plików w jeden plik. Minifikacja umożliwia usunięcie niepotrzebnych znaków ze skryptów i plików CSS bez zmiany funkcjonalności.
Jeśli musisz wdrożyć zawartość w innej lokalizacji, jest to dodatkowy krok w procesie wdrażania. Jeśli aplikacja aktualizuje zawartość sieci CDN, być może w regularnych odstępach czasu lub w odpowiedzi na zdarzenie, musi przechowywać zaktualizowaną zawartość w innych lokalizacjach, a także punkt końcowy dla sieci CDN.
Rozważ sposób obsługi lokalnego programowania i testowania, gdy część zawartości statycznej ma być obsługiwana z sieci CDN. Można na przykład wstępnie wdrożyć zawartość w usłudze CDN w ramach skryptu kompilacji. Można również sterować ładowaniem zasobów przez aplikację za pomocą flag lub dyrektyw kompilacji. Na przykład w trybie debugowania aplikacja może ładować zasoby statyczne z folderu lokalnego. W trybie przygotowania do wydania aplikacja będzie używać sieci CDN.
Dostępne są opcje kompresji plików, takie jak gzip (GNU zip). Kompresję można wykonać na serwerze źródłowym hostowaną przez aplikację internetową albo bezpośrednio na serwerach brzegowych przez sieć CDN. Aby uzyskać więcej informacji, zobacz Poprawianie wydajności przez kompresowanie plików w Azure Front Door.
Routing i wersjonowanie
Może być konieczne obsłużenie różnych wersji zawartości w różnych momentach. Na przykład podczas wdrażania nowej wersji aplikacji możesz chcieć obsłużyć nową zawartość i zachować starą zawartość (w starszym formacie) dla poprzednich wersji. Jeśli używasz usługi Azure Blob Storage jako źródła zawartości, możesz przechowywać każdą wersję w oddzielnym kontenerze obiektów blob. Źródło Azure Front Door identyfikuje hosta dla konta magazynu, a nie pojedynczy kontener. Aby obsłużyć zawartość z innego konta magazynu, wskaż źródło. Aby obsłużyć zawartość z innego kontenera na tym samym koncie, ustaw ścieżkę początkową trasy lub dodaj regułę ponownego zapisywania adresu URL, która jest przeznaczona dla kontenera.
Wdrożenie nowych wersji zawartości statycznej po aktualizacji aplikacji może być trudne, jeśli poprzednie zasoby znajdują się w pamięci podręcznej w sieci CDN. Aby uzyskać więcej informacji, zobacz następującą sekcję dotyczącą kontrolki pamięci podręcznej.
Rozważ ograniczenie dostępu do zawartości cdN według kraju lub regionu. Usługa Azure Front Door używa WAF do filtrowania żądań na podstawie kraju lub regionu, z którego pochodzi żądanie, oraz do ograniczania treści, które dostarcza. Więcej informacji można znaleźć w artykule Filtrowanie geograficzne w domenie dla Azure Front Door.
Kontrola pamięci podręcznej
Należy się zastanowić nad zarządzaniem pamięcią podręczną w systemie. Na przykład w Azure Front Door można ustawić reguły buforowania w akiecie reguł i zastosować niestandardowe zachowanie buforowania do określonych tras. Buforowaniem w sieci CDN można też sterować, wysyłając do źródła nagłówki z dyrektywami buforowania.
Aby uzyskać więcej informacji, zobacz Buforowanie przy użyciu usługi Azure Front Door.
Aby zapobiec udostępnieniu obiektów w usłudze CDN, można je usunąć ze źródła, usunąć punkt końcowy usługi CDN, albo dla magazynu obiektów blob uczynić kontener lub obiekt blob prywatnym. Jednak elementy nie są usuwane z sieci CDN, dopóki nie wygaśnie czas życia (TTL). Można też ręcznie wyczyścić punkt końcowy sieci CDN.
Zabezpieczenia
Azure Front Door może dostarczać zawartość za pośrednictwem protokołu HTTPS przy użyciu certyfikatu TLS zarządzanego Microsoft lub własnego certyfikatu. Aby uniknąć ostrzeżeń przeglądarki dotyczących mieszanej zawartości, użyj protokołu HTTPS, aby zażądać zawartości statycznej wyświetlanej na stronach załadowanych za pośrednictwem protokołu HTTPS. Aby uzyskać więcej informacji, zobacz Pełne wdrożenie TLS z usługą Azure Front Door.
W przypadku dostarczania statycznych zasobów, takich jak pliki czcionek, za pomocą sieci CDN mogą wystąpić problemy z zasadami tego samego źródła, jeśli do żądania tych zasobów z innej domeny jest używane wywołanie XMLHttpRequest. Wiele przeglądarek internetowych uniemożliwia współużytkowanie zasobów między źródłami (CORS, cross-origin resource sharing), chyba że konfiguracja serwera internetowego obejmuje ustawienie odpowiednich nagłówków odpowiedzi. Obsługę mechanizmu CORS w sieci CDN można skonfigurować za pomocą jednej z następujących metod:
Skonfiguruj sieć CDN pod kątem dodawania nagłówków CORS do odpowiedzi. Aby uzyskać więcej informacji, zobacz Konfigurowanie mechanizmu CORS przy użyciu Azure Front Door.
Jeśli źródłem jest Azure Blob Storage, dodaj reguły CORS do punktu końcowego usługi magazynu. Aby uzyskać więcej informacji, zobacz
Cross-Origin Resource Sharing (CORS) Support for the Azure Storage Services (Obsługa udostępniania zasobów środowiska Azure StorageSkonfiguruj ustawianie nagłówków CORS w aplikacji. Zobacz na przykład Enabling Cross-Origin Requests (CORS) w dokumentacji ASP.NET Core.
Zapasowa sieć CDN
Zastanów się, jak aplikacja radzi sobie z awarią lub tymczasową niedostępnością sieci CDN. Aplikacje klienckie mogą być w stanie używać kopii zasobów buforowanych lokalnie (na kliencie) podczas poprzednich żądań lub dołączyć kod, który wykrywa awarię, a zamiast tego żąda zasobów ze źródła (folderu aplikacji lub kontenera Azure Blob Storage, który przechowuje zasoby), jeśli sieć CDN jest niedostępna.