Ako sa Asp.Net Core Hosting Model používa vo webových aplikáciách?

Jadro Asp.net výrazne vylepšilo model hostingu. V predchádzajúcich verziách sa očakávalo, že hostia webové aplikácie Asp.net Core prostredníctvom proxy webových serverov, ako sú IIS na Windows, Apache alebo NGINX. Nové jadro Asp.net 2.2 však umožňuje priame hosťovanie aplikácie Asp.net vo Windows v rámci IIS bez požiadaviek na externý server. Toto teda zvyšuje priechodnosť pomocou jednoduchého mechanizmu hostenia počas procesu.

Hosting modelov v jadre ASP.NET

ASP.NET je technológia od spoločnosti Microsoft, ktorá vám umožňuje vytvárať dynamické stránky na strane webového servera.

Hosting ASP.NET je plne integrovaný so softvérom založený na systéme Windows, ako aj so samotným operačným systémom. Táto technológia sa považuje za celkom bezpečnú a spoľahlivú a ľahko použiteľnú. Používa sa hlavne na vývoj produktov v aplikácii.

Modely hostenia v jadre ASP.NET sú dva typy, t. J. Medziskladový a medzikontinentálny hosting. Pred ASP.Net Core 2.2 existoval iba jeden hostingový model, ktorý je mimo procesný hosting, ale kvôli výkonu sa zavádza In-Process Hosting Model v jadrových verziách Asp.net 2.2.

Zavedenie hosteného modelu v procese v jadre Asp.net

Predchádzajúce verzie technológie ASP.NET Core vyžadovali hostenie aplikácie v službe IIS pomocou modelu hostenia mimo procesu, ktorý proxy cez IIS. Žiadosti, ktoré zasiahli IIS alebo IIS Express, sa posielajú do webovej aplikácie ASP.NET Core bežiacej na webovom serveri Kestrel. S novým hosťovaním v procese sa však na hosťovanie používa iba jeden server, napríklad IIS, Nginx alebo Linux. To znamená, že namiesto odovzdávania požiadaviek do Kestrel je nová implementácia webového servera (IISHttpServer) hostená priamo v rámci IIS Application Pool, ktorý bude slúžiť žiadosti. V prípade platformy ASP.NET Core 3.1 sa hostingový model v procese používa ako predvolený model vždy, keď vyvíjate novú aplikáciu pomocou existujúcej šablóny.

Zdá sa, že tento model hostingu má oveľa vyššiu priepustnosť a zvýšenie výkonu v porovnaní s modelmi hostenia mimo procesu.

Hostingový model mimo procesu

V hostiteľských modeloch mimo procesu môžete použiť server Kestrel priamo ako server, ktorý čelí žiadosti používateľa, alebo môžete nasadiť aplikáciu do služby IIS, ktorá bude fungovať ako server proxy a odosiela požiadavky na interný server Kestrel. V tomto druhu modelu hostingu máte dve možnosti hostenia, t. J. Pomocou servera Kestrel a Proxy Server:

1. Pomocou Kestrel

Kestrel pritom funguje ako okrajový server, ktorý priamo vyžaduje serverové požiadavky používateľov, čo znamená, že jeden môže používať iba server Kestrel pre danú aplikáciu.

2. Používanie servera proxy

Kvôli obmedzeniam servera Kestrel to nie je možné použiť vo všetkých aplikáciách. V takýchto prípadoch je potrebné použiť výkonné servery ako IIS, Apache alebo NGINX. V tejto situácii teda tento server funguje ako rezervný proxy server, ktorý presmeruje každú požiadavku na interný server Kestrel, kde je spustená aplikácia. Tu sú spustené dva servery, napríklad IIS a Kestrel.

Tento model hostenia je predvolený model pre všetky aplikácie implementované staršiu verziu .NET Core 2.2. Jedným z obmedzení pri používaní tohto typu, napríklad spomalenie výkonu.

Záverečné myšlienky:

Podľa faktov väčšina spoločností na vývoj webových aplikácií ASP.Net určite chce používať hostingový model In-Process. Pretože spotrebúva menej zdrojov a poskytuje dobrý výkon. Pretože pre Kestrel nepotrebuje ďalší proces a tiež zabraňuje dodatočnej komunikácii medzi IIS a Kestrel. Existujú však prípady, keď je možné zvoliť hosťovanie mimo procesu, napríklad v prípade hostenia rovnakej webovej aplikácie v systéme Windows a Linux. Keď hovoríme o hostovaní aplikácie na iných platformách, Kestrel je primárny mechanizmus, ktorý sa používa na vybavovanie požiadaviek HTTP na všetkých platformách.

Spustenie procesu In-Process na IIS je však najlepším spôsobom, pokiaľ nemáte pre Kestrel veľmi špecifickú požiadavku.

Hlavný obrázok: Foto: Farzad Nazifi, Unsplash




Komentáre (0)

Zanechať komentár