Hostování ASP.NET Core ve webové farmě
Chris Neschůdně
Webová farma je skupina dvou nebo více webových serverů (nebo uzlů), které hostí více instancí aplikace. Když žádosti od uživatelů dorazí do webové farmy, nástroj pro vyrovnávání zatížení je distribuuje do uzlů webové farmy. Vylepšení webových farem:
- Spolehlivost/dostupnost: Pokud jeden nebo více uzlů selže, nástroj pro vyrovnávání zatížení může směrovat požadavky na jiné funkční uzly, aby pokračoval ve zpracování požadavků.
- Kapacita/výkon: Více uzlů může zpracovat více požadavků než jeden server. Nástroj pro vyrovnávání zatížení vyvažuje zatížení tím, že distribuuje požadavky do uzlů.
- Škálovatelnost: Pokud je potřeba větší nebo menší kapacita, je možné zvýšit nebo snížit počet aktivních uzlů tak, aby odpovídaly zatížení. Technologie platformy webové farmy, jako je Azure App Service, mohou automaticky přidávat nebo odebírat uzly na žádost správce systému nebo automaticky bez lidského zásahu.
- Udržovatelnost: Uzly webové farmy mohou spoléhat na sadu sdílených služeb, což vede k jednodušší správě systému. Uzly webové farmy mohou například spoléhat na jeden databázový server a společné síťové umístění statických prostředků, jako jsou obrázky a soubory ke stažení.
Toto téma popisuje konfiguraci a závislosti pro ASP.NET aplikace hostované ve webové farmě, které spoléhají na sdílené prostředky.
Obecná konfigurace
Hostování a nasazení ASP.NET Core
Naučte se nastavovat hostitelské prostředí a nasazovat ASP.NET Core aplikace. Nakonfigurujte správce procesů na každém uzlu webové farmy, aby se automatizovaly spuštění a restartování aplikace. Každý uzel vyžaduje ASP.NET Core runtime. Další informace najdete v tématech v dokumentaci v oblasti Hostitel a nasazení.
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ýují důležité informace o žádostech.
Nasazení aplikací ASP.NET Core pro Azure App Service
Azure App Service je služba platformy Microsoft cloud computing 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 aplikací
Při škálování aplikace na více instancí může být 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 pro aplikace nasazené do webové farmy.
Ochrana dat
Systém ASP.NET Core Data Protection používají aplikace k ochraně dat. Ochrana dat spoléhá na sadu kryptografických klíčů uložených v okruhu klíčů. Při inicializaci systému ochrany dat se aplikují výchozí nastavení, ve které je klíčový okruh místně. Ve výchozí konfiguraci je jedinečný klíčový okruh uložený v každém uzlu webové farmy. V důsledku toho nemůže každý uzel webové farmy dešifrovat data zašifrovaná aplikací na žádném jiném uzlu. Výchozí konfigurace není obecně vhodná pro hostování aplikací ve webové farmě. Alternativou k implementaci okruhu sdíleného klíče 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 ochrany ASP.NET Core 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 napříč uzly webové farmy. Ukládání do mezipaměti musí spoléhat na společnou mezipaměť Redis, sdílenou databázi SQL Server nebo 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ávisí na technologiích, které vyžadují konfiguraci webových farem.
| Scenario | Závisí na … |
|---|---|
| Authentication | Ochrana dat (viz konfigurace ochrany ASP.NET Core dat ). Další informace naleznete v tématech Použít cookie ověřování bez ASP.NET Core Identity a Sdílení ověřování cookie mezi ASP.NET aplikacemi. |
| Identity | Ověřování a konfigurace databáze. Další informace naleznete v tématu Úvod do Identity ASP.NET Core. |
| Relace | Ochrana dat cookie (šifrované) (viz ) a konfigurace ochrany ASP.NET Core dat Ukládání do mezipaměti (viz Distribuované ukládání do mezipaměti v ASP.NET Core ). Další informace najdete v tématu Správa relací a stavů: Stav relace. |
| TempData | Ochrana dat (šifrované) (viz ) nebo Relace (viz Správa relací a cookie konfigurace ochrany ASP.NET Core dat stavů: Stav relace). Další informace najdete v tématu Správa relací a stavů: TempData. |
| Ochrana proti padělku | Ochrana dat (viz konfigurace ochrany ASP.NET Core dat ). Další informace naleznete v tématu Prevence útoků XSRF/CSRF (Cross-Site Request Forgery) v ASP.NET Core. |
Řešení 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ů dochází k přerušovaným chybám. K tomu dochází, protože uzly nesdílí stejné prostředky a požadavky uživatelů nejsou vždy směrovány zpět do stejného uzlu.
Představte si uživatele, který se k aplikaci přihlásí pomocí cookie ověřování. Uživatel se přihlásí k aplikaci na jednom uzlu webové farmy. Pokud další požadavek dorazí na stejný uzel, na kterém se přihlásil, může aplikace dešifrovat ověřování a umožní přístup k cookie prostředku aplikace. Pokud jejich další požadavek dorazí na jiný uzel, nemůže aplikace dešifrovat ověřování z uzlu, na kterém se uživatel přihlásil, a autorizace cookie požadovaného prostředku selže.
Pokud se některý z následujících příznaků vyskytuje přerušovaně, problém se obvykle sleduje kvůli nesprávné ochraně dat nebo konfiguraci ukládání do mezipaměti pro prostředí webové farmy:
- Přerušení ověřování: cookie Ověřování je špatně nakonfigurované nebo není možné ho dešifrovat. Přihlášení OAuth (Facebook, Microsoft, Twitter) nebo OpenIdConnect selžou s chybou Korelace se nezdařila.
- Autorizace se Identity přeruší: ztratí se.
- Stav relace ztratí data.
- Položky uložené v mezipaměti zmizí.
- TempData selže.
- Selhání poST: Kontrola proti padělkům selže.
Další informace o konfiguraci ochrany dat pro nasazení webové farmy najdete v tématu konfigurace ochrany ASP.NET Core dat . Další informace o konfiguraci ukládání do mezipaměti pro nasazení webové farmy najdete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core .
Získání dat z aplikací
Pokud jsou aplikace webové farmy schopné reagovat na žádosti, získat žádost, připojení a další data z aplikací pomocí v řádku middlewaru terminálu. Další informace a vzorový kód najdete v tématu řešení potíží a ladění ASP.NET Corech projektů .
Další zdroje informací
- Rozšíření vlastních skriptů pro Windows:Stáhne a spustí skripty na virtuálních počítačích Azure, což je užitečné pro konfiguraci po nasazení a instalaci softwaru.
- Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení