Cum este folosit modelul de găzduire Asp.Net Core în aplicațiile Web?

Asp.net core are o îmbunătățire semnificativă a modelului de găzduire. În versiunile anterioare era de așteptat să găzduiască aplicațiile web Asp.net Core prin servere web proxy, cum ar fi IIS pe Windows, Apache sau NGINX. Cu toate acestea, noul nucleu Asp.net 2.2 permite găzduirea directă a aplicației Asp.net în Windows în cadrul IIS fără cerințele serverului extern. Astfel, aceasta crește randamentul folosind un mecanism simplu de găzduire în proces.

Modele de găzduire în ASP.NET Core

ASP.NET este o tehnologie de la Microsoft care vă permite să creați pagini dinamice pe partea serverului web.

Găzduirea ASP.NET este complet integrată cu software -ul bazat pe Windows, precum și cu sistemul de operare în sine. Această tehnologie este considerată destul de sigură și fiabilă, precum și ușor de utilizat. Este utilizat în principal pentru dezvoltarea produselor din aplicație.

Modelele de găzduire în ASP.NET Core sunt de două tipuri, adică Gazduire în proces și Gazduire în afara procesului. Înainte de ASP.Net Core 2.2, exista un singur model de găzduire, care este găzduirea în afara procesului, dar datorită performanței, modelul de gazduire în proces în Asp.net core 2.2 este introdus.

Introducerea modelului de gazduire în proces în Asp.net Core

Versiunile anterioare ale ASP.NET Core au necesitat una pentru a găzdui aplicația în IIS folosind un model de găzduire în afara procesului care se servește prin IIS. Cererile care vin pe IIS sau IIS Express sunt transmise către aplicația web ASP.NET Core care rulează pe Kestrel Web Server. Cu toate acestea, cu noul gazduire în proces, un singur server este utilizat pentru găzduire precum IIS, Nginx sau Linux. Înseamnă că în loc de a retrimite cererile către Kestrel, o nouă implementare a serverului Web (IISHttpServer) este găzduită direct în grupul de aplicații IIS, care va servi solicitarea. Cu ASP.NET Core 3.1, modelul de găzduire în proces este utilizat ca model implicit ori de câte ori dezvoltați o nouă aplicație folosind un șablon existent.

Aparent, acest model de găzduire are un randament ridicat și o îmbunătățire a performanței în comparație cu modelul de găzduire în afara procesului.

Model de găzduire în afara procesului

În modelele de găzduire în afara procesului, puteți utiliza serverul Kestrel direct ca un server care se confruntă cu o solicitare a utilizatorului sau puteți implementa aplicația în IIS, care va acționa ca un server proxy și trimite solicitări către serverul intern Kestrel. În acest tip de model de găzduire, aveți două opțiuni de găzduire adică folosind Kestrel și Proxy Server:

1. Folosind Kestrel

În acest caz, Kestrel acționează în sine ca server edge care solicită direct utilizatorul serverului, ceea ce înseamnă că se poate utiliza doar serverul Kestrel pentru aplicație.

2. Utilizarea unui server proxy

Datorită limitărilor serverului Kestrel, nu se poate utiliza acest lucru în toate aplicațiile. În astfel de cazuri, trebuie să folosiți servere puternice precum IIS, Apache sau NGINX. Așadar, în această situație, acest server acționează ca un server proxy de rezervă care va redirecționa fiecare cerere către severitatea internă Kestrel unde se execută aplicația. Aici rulează două servere precum IIS și Kestrel.

Acest model de găzduire este un model implicit pentru toate aplicațiile implementate anterior .NET Core 2.2 versiune. Una dintre limitările utilizării acestui tip, cum ar fi încetinirea performanței.

Gânduri finale:

Conform faptelor, majoritatea companiilor de dezvoltare web ASP.Net doresc cu siguranță să utilizeze modelul de găzduire în proces. Deoarece consumă mai puține resurse și oferă performanțe bune. Deoarece nu are nevoie de un proces suplimentar pentru Kestrel și, de asemenea, evită comunicarea suplimentară între IIS și Kestrel. Cu toate acestea, există cazuri în care cineva poate dori să aleagă găzduire în afara procesului, cum ar fi în cazul găzduirii aceleiași aplicații web în Windows și în Linux. Când vorbim despre găzduirea aplicației pe alte platforme, Kestrel este mecanismul principal utilizat pentru a gestiona cererile HTTP pe toate platformele.

Cu toate acestea, executarea în proces a IIS este cea mai bună modalitate, dacă nu aveți o cerință foarte specifică pentru Kestrel.

Credit imagine principală: Foto de Farzad Nazifi pe Unsplash




Comentarii (0)

Lasa un comentariu