Jak Asp.Net Core Hosting Model používá ve webových aplikacích?



Jádro Asp.net výrazně vylepšilo model hostování. V dřívějších verzích se očekávalo, že budou hostovat webové aplikace Asp.net Core prostřednictvím proxy webových serverů, jako jsou IIS ve Windows, Apache nebo NGINX. Nové jádro Asp.net 2.2 však umožňuje přímé hostování aplikace Asp.net ve Windows v rámci IIS bez požadavků na externí server. To tedy zvyšuje propustnost pomocí jednoduchého hostovacího mechanismu v procesu.

Hosting modelů v ASP.NET Core

Hostingové modely v ASP.NET Core jsou dvou typů, tj. In-process Hosting a Out-of-process Hosting. Před ASP.Net Core 2.2 existoval pouze jeden hostingový model, což je hosting mimo proces, ale kvůli výkonu byl představen In-Process Hosting Model ve verzi Asp.net core 2.2.

Zavedení hostujícího modelu v procesu v jádru Asp.net

Předchozí verze technologie ASP.NET Core vyžadovaly, aby byla aplikace hostována ve službě IIS pomocí hostovacího modelu Out-of-Process, který prochází prostřednictvím služby IIS. Požadavky, které zasáhly IIS nebo IIS Express, jsou předávány webové webové aplikaci ASP.NET Core spuštěné na webovém serveru Kestrel. S novým hostingem v procesu se však pro hostování jako IIS, Nginx nebo Linux používá pouze jeden server. To znamená, že namísto předávání požadavků na Kestrel je nová implementace webového serveru (IISHttpServer) hostována přímo uvnitř fondu aplikací IIS, který bude sloužit požadavku. U technologie ASP.NET Core 3.1 se hostující model v procesu používá jako výchozí model, kdykoli vyvíjíte novou aplikaci pomocí existující šablony.

Tento hostingový model má zjevně mnohem vyšší propustnost a zvýšení výkonu ve srovnání s hostingovým modelem Out-Of-Process.

Model hostování mimo proces

V modelech hostování mimo proces můžete server Kestrel použít přímo jako server s požadavky na uživatele, nebo můžete nasadit aplikaci do služby IIS, která bude fungovat jako proxy server a odešle požadavky internímu serveru Kestrel. V tomto druhu hostingového modelu máte dvě možnosti hostování, tj. Pomocí Kestrel a Proxy Server:

1. Používání Kestrel

V tomto případě Kestrel sám funguje jako okrajový server, který přímo vyžaduje požadavky uživatelů serveru, což znamená, že jeden může použít pouze server Kestrel pro aplikaci.

2. Použití serveru proxy

Vzhledem k omezením serveru Kestrel to nelze použít ve všech aplikacích. V takových případech je třeba použít výkonné servery jako IIS, Apache nebo NGINX. V této situaci tedy tento server funguje jako rezervní proxy server, který přesměruje každý požadavek na interní server Kestrel, kde je spuštěna aplikace. Zde běží dva servery, například IIS a Kestrel.

Tento model hostování je výchozím modelem pro všechny aplikace implementované dříve .NET Core 2.2 verze. Jedním z omezení používání tohoto typu, například zpomalení výkonu.

Závěrečné myšlenky:

Jak je uvedeno na faktech, většina společností vyvíjejících vývoj webových technologií ASP.Net určitě chce použít model hostování v procesu. Protože spotřebovává méně zdrojů a poskytuje dobrý výkon. Protože pro Kestrel nepotřebuje další proces a také zabraňuje další komunikaci mezi IIS a Kestrel. Existují však případy, kdy je možné zvolit hosting mimo proces, například v případě hostování stejné webové aplikace v systému Windows a Linux. Když mluvíme o hostování aplikace na jiných platformách, Kestrel je primární mechanismus používaný pro zpracování požadavků HTTP na všech platformách.

Spuštění procesu In-Process ve službě IIS je však nejlepším způsobem, pokud nemáte pro Kestrel velmi konkrétní požadavek.

Hlavní obrazový kredit: Foto Farzad Nazifi na Unsplash





Komentáře (0)

Zanechat komentář