Kako se model spletnega gostovanja Asp.Net uporablja v spletnih aplikacijah?



Jedro Asp.net je bistveno izboljšalo model gostovanja. V prejšnjih različicah je bilo pričakovati, da bodo gostile spletne aplikacije Asp.net Core prek proxy spletnih strežnikov, kot so IIS v operacijskem sistemu Windows, Apache ali NGINX. Vendar novo jedro 2.2 Asp.net omogoča neposredno gostovanje aplikacije Asp.net v operacijskem sistemu Windows znotraj IIS brez zunanjih zahtev strežnika. Tako se poveča pretok s preprostim mehanizmom gostovanja v procesu.

Gostovanje modelov v ASP.NET Core

ASP.NET je tehnologija Microsofta, ki vam omogoča ustvarjanje dinamičnih strani na strani spletnega strežnika.

Gostovanje ASP.NET je v celoti integriran s programsko opremo, ki temelji na sistemu Windows, pa tudi s samim operacijskim sistemom. Ta tehnologija velja za precej varno in zanesljivo, pa tudi enostavno za uporabo. Uporablja se predvsem za razvoj izdelkov v aplikaciji.

Modeli gostovanja v ASP.NET Core so dve vrsti, tj. Med in med gostovanjem in zunaj gostovanja. Pred ASP.Net Core 2.2 je obstajal samo en model gostovanja, ki je zunaj obratovalnega gostovanja, vendar so zaradi zmogljivosti predstavljeni modeli med procesnimi gostovanji v osnovni različici Asp.net core 2.2.

Uvedba modela gostovanja v procesu v jedru Asp.net

Prejšnje različice ASP.NET Core so zahtevale, da je gostovanje aplikacije v IIS uporabljalo zunanji procesni model gostovanja, ki posreduje prek IIS. Zahteve, ki so zadele IIS ali IIS Express, se posredujejo v spletno aplikacijo ASP.NET Core, ki deluje znotraj spletnega strežnika Kestrel. Vendar pa je z novim meddržavnim gostovanjem za gostovanje uporabljen le en strežnik, kot so IIS, Nginx ali Linux. To pomeni, da namesto posredovanja zahtev Kestrelu neposredno v aplikacijskem skladu IIS gostuje nova implementacija spletnega strežnika (IISHttpServer), ki bo strežila zahtevi. Pri ASP.NET Core 3.1 se model za gostovanje v procesu uporablja kot privzeti model, kadar koli razvijete novo aplikacijo z obstoječo predlogo.

Očitno ima ta model gostovanja v primerjavi z modelom gostovanja zunaj procesa precej izboljšanje pretoka in zmogljivosti.

Gostovalni model zunaj obdelave

V modelih gostovanja, ki niso v postopku, lahko strežnik Kestrel uporabite neposredno kot strežnik uporabniške zahteve ali pa namestite aplikacijo v IIS, ki deluje kot proxy strežnik in pošilja zahteve na notranji strežnik Kestrel. V takšnem modelu gostovanja imate na voljo dve možnosti za gostovanje, tj. Z uporabo Kestrela in proxy strežnika:

1. Uporaba Kestrela

V tem primeru Kestrel sam deluje kot robni strežnik, ki neposredno zahteva uporabnika strežnika, kar pomeni, da lahko za aplikacijo uporabljate le strežnik Kestrel.

2. Uporaba proxy strežnika

Zaradi omejitev strežnika Kestrel tega ni mogoče uporabiti v vseh aplikacijah. V takih primerih je treba uporabljati močne strežnike, kot so IIS, Apache ali NGINX. Torej, v tem primeru ta strežnik deluje kot rezervni proxy strežnik, ki bo vsako zahtevo preusmeril v interno Kestrel sever, kjer se aplikacija izvaja. Tu delujeta dva strežnika, kot sta IIS in Kestrel.

Ta model gostovanja je privzeti model za vse aplikacije, implementirane v prejšnji različici .NET Core 2.2. Ena od omejitev uporabe te vrste, kot je počasnost delovanja.

Končne misli:

Glede na dejstva večina podjetij za razvoj spletnih strani ASP.Net zagotovo želi uporabiti model gostovanja In-Process. Ker porabi manj virov in zagotavlja dobro delovanje. Ker za Kestrel ni potreben dodaten postopek in se izogne ​​tudi dodatni komunikaciji med IIS in Kestrel. Vendar obstajajo primeri, ko bi morda želeli izbrati gostovanje zunaj procesa, na primer v primeru gostovanja iste spletne aplikacije v operacijskem sistemu Windows in Linux. Ko govorimo o gostovanju aplikacije na drugih platformah, je Kestrel primarni mehanizem, ki se uporablja za obdelavo zahtev HTTP na vseh platformah.

Vendar pa je zagon In-Process na IIS najboljši način, če nimate zelo specifičnih zahtev za Kestrel.

Kredit za glavno sliko: Foto Farzad Nazifi na Unsplash




Komentarji (0)

Pustite komentar