Sdílet prostřednictvím


Hostování ASP.NET Core ve webové farmě

Poznámka:

Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Upozorňující

Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Důležité

Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.

Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Autor: Chris Ross

Webová farma je skupina dvou nebo více webových serverů (nebo uzlů), které hostují více instancí aplikace. Když žádosti od uživatelů přijdou do webové farmy, nástroj pro vyrovnávání zatížení distribuuje požadavky do uzlů webové farmy. Webové farmy zlepšují:

  • Spolehlivost/dostupnost: Pokud jeden nebo více uzlů selže, může nástroj pro vyrovnávání zatížení směrovat požadavky na jiné funkční uzly, aby mohl pokračovat ve zpracování požadavků.
  • Kapacita/výkon: Více uzlů může zpracovávat více požadavků než jeden server. Nástroj pro vyrovnávání zatížení vyrovnává zatížení tím, že distribuuje požadavky na uzly.
  • Škálovatelnost: Pokud se vyžaduje více nebo méně kapacity, můžete počet aktivních uzlů zvýšit nebo snížit tak, aby odpovídaly úloze. Technologie platformy webové farmy, jako je například služba Aplikace Azure Service, můžou automaticky přidávat nebo odebírat uzly na žádost správce systému nebo automaticky bez zásahu člověka.
  • Udržovatelnost: Uzly webové farmy můžou záviset na sadě sdílených služeb, což vede k jednodušší správě systému. Uzly webové farmy můžou například záviset na jednoúčelovém databázovém serveru a společném síťovém umístění pro statické prostředky, jako jsou image a soubory ke stažení.

Toto téma popisuje konfiguraci a závislosti pro ASP.NET základní aplikace hostované ve webové farmě, které spoléhají na sdílené prostředky.

Obecná konfigurace

Hostování a nasazení ASP.NET Core
Zjistěte, jak nastavit hostitelská prostředí a nasazovat aplikace ASP.NET Core. Nakonfigurujte správce procesů na každém uzlu webové farmy, který automatizuje spuštění a restartování aplikace. Každý uzel vyžaduje modul runtime ASP.NET Core. Další informace najdete v tématech v oblasti Hostitel a nasazení v dokumentaci.

Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení
Seznamte se s konfigurací aplikací hostovaných za proxy servery a nástroji pro vyrovnávání zatížení, které často zakrývají důležité informace o žádosti.

Nasazení aplikací ASP.NET Core do Azure App Service
Azure App Service je služba platformy cloud computingu Microsoftu pro hostování webových aplikací, včetně ASP.NET Core. App Service je plně spravovaná platforma, která poskytuje automatické škálování, vyrovnávání zatížení, opravy a průběžné nasazování.

Data aplikace

Když se aplikace škáluje na více instancí, může existovat stav aplikace, který vyžaduje sdílení mezi uzly. Pokud je stav přechodný, zvažte sdílení IDistributedCache. Pokud sdílený stav vyžaduje trvalost, zvažte uložení sdíleného stavu do databáze.

Požadovaná konfigurace

Ochrana dat a ukládání do mezipaměti vyžadují konfiguraci aplikací nasazených do webové farmy.

Ochrana dat

Aplikace k ochraně dat používají systém ASP.NET Core Data Protection. Ochrana dat spoléhá na sadu kryptografických klíčů uložených v okruhu klíčů. Když je systém Ochrany dat inicializován, použije výchozí nastavení , která ukládají okruh klíčů místně. Ve výchozí konfiguraci se na každém uzlu webové farmy uloží jedinečný okruh klíčů. Každý uzel webové farmy proto nemůže dešifrovat data zašifrovaná aplikací na jiném uzlu. Výchozí konfigurace obecně není vhodná pro hostování aplikací ve webové farmě. Alternativou k implementaci sdíleného okruhu klíčů je vždy směrovat požadavky uživatelů do stejného uzlu. Další informace o konfiguraci systému ochrany dat pro nasazení webové farmy najdete v tématu Konfigurace ASP.NET Základní ochrana dat.

Ukládání do mezipaměti

V prostředí webové farmy musí mechanismus ukládání do mezipaměti sdílet položky uložené v mezipaměti mezi uzly webové farmy. Ukládání do mezipaměti se musí spoléhat buď na společnou mezipaměť Redis, sdílenou databázi SQL Serveru, nebo na vlastní implementaci ukládání do mezipaměti, která sdílí položky uložené v mezipaměti ve webové farmě. Další informace naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.

Závislé komponenty

Následující scénáře nevyžadují další konfiguraci, ale závisejí na technologiích, které vyžadují konfiguraci webových farem.

Scénář Závisí na ...
Ověřování Ochrana dat (viz Konfigurace ASP.NET Základní ochrana dat).

Další informace najdete v tématu Použití cookie ověřování bez ASP.NET core Identity a sdílení ověřovacích souborů cookie mezi aplikacemi ASP.NET.
Identity Konfigurace ověřování a databáze.

Další informace najdete v tématu Úvod do Identity ASP.NET Core.
Relace Ochrana dat (šifrované soubory cookie) (viz Konfigurace ASP.NET Základní ochrana dat) a ukládání do mezipaměti (viz Distribuované ukládání do mezipaměti v ASP.NET Core).

Další informace naleznete v tématu Správa relací a stavů: Stav relace.
TempData Ochrana dat (šifrované soubory cookie) (viz Konfigurace ASP.NET Základní ochrana dat) nebo Relace (viz Správa relací a stavu: Stav relace).

Další informace naleznete v tématu Správa relací a stavů: TempData.
Antiforgery Ochrana dat (viz Konfigurace ASP.NET Základní ochrana dat).

Další informace najdete v tématu Prevence útoků založených na padělání žádosti posílané mezi weby (XSRF/CSRF) v ASP.NET Core.

Odstraňování potíží

Ochrana dat a ukládání do mezipaměti

Pokud pro prostředí webové farmy není nakonfigurovaná ochrana dat nebo ukládání do mezipaměti, při zpracování požadavků dojde k přerušovaným chybám. K tomu dochází, protože uzly nesdílejí stejné prostředky a požadavky uživatelů nejsou vždy směrovány zpět do stejného uzlu.

Zvažte uživatele, který se přihlásí k aplikaci pomocí cookie ověřování. Uživatel se přihlásí k aplikaci na jednom uzlu webové farmy. Pokud se jejich další žádost dorazí do stejného uzlu, kde se přihlásili, aplikace dokáže dešifrovat ověřování cookie a umožní přístup k prostředku aplikace. Pokud jejich další požadavek přijde na jiný uzel, aplikace nemůže dešifrovat ověřování cookie z uzlu, kde se uživatel přihlásil, a autorizace požadovaného prostředku selže.

Pokud k některému z následujících příznaků dochází přerušovaně, problém je obvykle trasován na nesprávnou ochranu dat nebo ukládání do mezipaměti pro prostředí webové farmy:

  • Konce ověřování: Ověřování cookie je chybně nakonfigurované nebo se nedá dešifrovat. Přihlášení OAuth (Facebook, Microsoft, Twitter) nebo OpenIdConnect selžou s chybou "Korelace selhala".
  • Konce autorizace: Identity dojde ke ztrátě.
  • Stav relace ztratí data.
  • Položky uložené v mezipaměti zmizí.
  • TempData selže.
  • PoSTs selžou: Antiforgery kontrola selže.

Další informace o konfiguraci ochrany dat pro nasazení webové farmy najdete v tématu Konfigurace ASP.NET Základní ochrana dat. Další informace o konfiguraci ukládání do mezipaměti pro nasazení webové farmy naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.

Získání dat z aplikací

Pokud aplikace webové farmy dokážou reagovat na požadavky, získat požadavky, připojení a další data z aplikací pomocí vloženého middlewaru terminálu. Další informace a vzorový kód najdete v tématu Řešení potíží a ladění ASP.NET základních projektů.

Další materiály