Na koji se način Asp.Net Core Hosting koristi u web aplikacijama?



Jezgra Asp.net-a je značajno poboljšala model hostinga. Očekivalo se da će u ranijim verzijama ugostiti Asp.net Core web aplikacije putem proxy web servera poput IIS na Windows-u, Apache ili NGINX. No, nova jezgra Asp.net-a 2.2 omogućava direktno hosting programa Asp.net u Windowsu unutar IIS-a bez vanjskih zahtjeva poslužitelja. Na taj način se povećava propusnost koristeći jednostavan mehanizam za internetski hosting.

Hosting Modeli u ASP.NET Core-u

Hosting modeli u ASP.NET Core su dvije vrste, tj. Hosting u procesu i izvan procesa. Prije ASP.Net Core 2.2 postojao je samo jedan model hostinga, van hosting procesa, ali zbog performansi uvedeni su In-Process Hosting Model u Asp.net jezgri 2.2 verzije.

Uvođenje modela u procesu obrade u jezgru Asp.net

Prethodne verzije ASP.NET Core-a zahtijevale su jednu da ugosti aplikaciju u IIS-u koristeći van-procesni model hostinga koji pristupa kroz IIS. Zahtjevi koji pogoduju IIS ili IIS Express prosljeđuju se web lokaciji ASP.NET Core koja se pokreće u sklopu Kestrel web servera. Međutim, s novim inter-hosting hostingom koristi se samo jedan poslužitelj za hosting poput IIS, Nginx ili Linux. To znači da umjesto da prosljeđuje zahtjeve Kestrel-u, nova implementacija web servera (IISHttpServer) nalazi se izravno u sklopu IIS baze podataka koja će poslužiti zahtjevu. Uz ASP.NET Core 3.1, model internetskog hostinga koristi se kao zadani model kad god razvijate novu aplikaciju koristeći postojeći predložak.

Očigledno je da ovaj model hostinga ima mnogo povećanu propusnost i performanse u poređenju s hosting modelom izvan procesa.

Izvanprocesni model hostinga

U izvanmrežnim modelima hostinga možete ili koristiti Kestrel server izravno kao korisnički zahtjev koji je okrenut poslužitelju ili možete implementirati aplikaciju u IIS koji će djelovati kao proxy poslužitelj i slati zahtjeve na interni Kestrel server. U ovakvom modelu hostinga imate dvije mogućnosti za hosting tj. Korištenje Kestrela i proxy servera:

1. Korištenje Kestrela

U tome, Kestrel i sam djeluje kao rubni server koji direktno zahtijeva server servera, što znači da se za aplikaciju može koristiti samo Kestrel server.

2. Korištenje proxy servera

Zbog ograničenja Kestrel servera, to se ne može koristiti u svim aplikacijama. U takvim slučajevima treba koristiti moćne servere poput IIS, Apache ili NGINX. Dakle, u ovoj situaciji, ovaj poslužitelj djeluje kao rezervni proxy server koji će svaki zahtjev preusmjeriti u interni Kestrel sever gdje se aplikacija izvodi. Ovde rade dva servera poput IIS i Kestrel.

Ovaj model hostinga je zadani model za sve aplikacije implementirane ranije. NET Core 2.2 verzije. Jedno od ograničenja upotrebe ove vrste kao što je sporost performansi.

Završne misli:

Prema činjenicama, većina tvrtki za razvoj ASP.Net web stranica sigurno želi koristiti model In-Process hostinga. Pošto troši manje resursa i pruža dobre performanse. Kako za Kestrel nije potreban dodatni postupak, a izbjegava i dodatnu komunikaciju između IIS-a i Kestrela. Međutim, postoje slučajevi u kojima možda želite da odaberete Out-Of-Process hosting kao što je slučaj hostinga iste web aplikacije u Windows-u i Linuxu. Kada govorimo o hostiranju aplikacije na drugim platformama, Kestrel je primarni mehanizam koji se koristi za obradu HTTP zahtjeva na svim platformama.

Međutim, pokretanje In-Process-a na IIS-u je najbolji način ako nemate sasvim specifičan zahtjev za Kestrel.

Kredit za glavnu sliku: Foto Farzad Nazifi na Unsplash-u




ASP.net,  ⏧ Web razvoj,  ⏧ Web aplikacije

Komentari (0)

Ostavite komentar