Qanday qilib Asp.Net Core Hosting Model veb-dasturlarda ishlatiladi?



Asp.net yadrosi hosting modelini sezilarli darajada yaxshilaydi. Oldingi versiyalarda Windows, Apache yoki NGINX-da IIS kabi proksi-serverlar orqali Asp.net Core veb-dasturlarini qabul qilish kutilgan edi. Shu bilan birga, yangi Asp.net yadrosi 2.2, Asp.net dasturini Windows-da IIS ichida tashqi server talabisiz joylashtirishga imkon beradi. Shunday qilib, bu oddiy In-Process hosting mexanizmidan foydalangan holda o'tkazish qobiliyatini oshiradi.

ASP.NET Core-da xosting modellari

Asp.Net - bu Microsoft-ning texnologiyasi, bu sizga Internet-server tomonida dinamik sahifalarni yaratishga imkon beradi.

ASP.NET xosting Windows-ning dasturiy ta'minoti bilan, shuningdek operatsion tizimning o'zi bilan to'liq integratsiyalashgan. Ushbu texnologiya umuman xavfsiz va ishonchli deb hisoblanadi, shuningdek foydalanish oson hisoblanadi. U asosan ilova ichidagi mahsulotlarni ishlab chiqish uchun ishlatiladi.

ASP.NET Core-da xosting modellari ikki xil, ya'ni jarayonda xosting va jarayondan tashqari xosting. ASP.Net Core 2.2-dan oldin faqat bitta xosting modeli mavjud edi, bu ishlov berilmagan xosting, ammo ishlashi sababli Asp.net asosiy 2.2 versiyasida In-Process Hosting Model taqdim etildi.

Asp.net Core-da protsessual xosting modelini joriy etish

ASP.NET Core-ning oldingi versiyalari dasturni IIS-da proksi-server orqali amalga oshiriladigan Ishlov berilmagan xosting modelidan foydalanib, IIS-da talab qilishi kerak edi. IIS yoki IIS Express bilan bog'langan so'rovlar Kestrel veb-serverida ishlaydigan ASP.NET Core veb-ilovasiga yuboriladi. Biroq, yangi In-process hosting-da, IIS, Nginx yoki Linux kabi hosting uchun faqat bitta server ishlatiladi. Bu shuni anglatadiki, so'rovlarni Kestrelga yuborish o'rniga, yangi Internet-server (IISHttpServer) so'rovni bajaradigan to'g'ridan-to'g'ri IIS Application Pool ichida joylashtirilgan. ASP.NET Core 3.1 bilan, mavjud shablondan foydalangan holda yangi dasturni ishlab chiqishda, jarayonda xosting modeli standart model sifatida ishlatiladi.

Ko'rinishidan, ushbu hosting modeli jarayondan tashqari hosting modeli bilan taqqoslaganda ancha yuqori o'tkazish qobiliyati va ishlash qobiliyatiga ega.

Jarayondan tashqari xosting modeli

Jarayondan tashqari xosting modellarida siz Kestrel serverini to'g'ridan-to'g'ri serverga murojaat qiladigan foydalanuvchi so'rovi sifatida ishlatishingiz mumkin yoki dasturni proksi-server sifatida ishlaydigan va so'rovlarni ichki Kestrel serveriga yuboradigan IIS-da ishlatishingiz mumkin. Ushbu turdagi xostingda xosting uchun ikkita variant mavjud, ya'ni Kestrel va Proksi Serverdan foydalanish:

1. Kestrel-dan foydalanish

Bunda Kestrel o'zi bevosita server foydalanuvchisi so'rov beradigan chekka server vazifasini bajaradi, bu esa faqat Kestrel serverini dastur uchun ishlatishi mumkinligini anglatadi.

2. Proksi-serverdan foydalanish

Kestrel serveri cheklanganligi sababli, uni barcha dasturlarda ishlatib bo'lmaydi. Bunday hollarda, IIS, Apache yoki NGINX kabi kuchli serverlardan foydalanish kerak. Shunday qilib, ushbu vaziyatda ushbu server zaxira proksi-serveri vazifasini bajaradi, u har bir so'rovni dastur ishlayotgan joyda ichki Kestrel break-ga yo'naltiradi. Bu erda ikkita IIS va Kestrel kabi serverlar ishlamoqda.

Ushbu hosting modeli ilgari amalga oshirilgan barcha dasturlar uchun standart modeldir .NET Core 2.2 versiyasi. Ushbu turdan foydalanishning cheklashlaridan biri, masalan, ishlashning sekinligi.

Yakuniy fikrlar:

Faktlarga ko'ra, ASP.Net veb-ishlab chiqarish kompaniyalarining aksariyati, In-Process hosting modelidan foydalanishni xohlashadi. Chunki u kamroq resurslarni sarflaydi va yaxshi ishlashni ta'minlaydi. Kestrel uchun qo'shimcha jarayon kerak emasligi sababli, IIS va Kestrel o'rtasidagi qo'shimcha aloqalarni oldini oladi. Shu bilan birga, Windows va Linux-da bir xil veb-dasturni xostlash kabi, jarayondan tashqari xostingni tanlashni xohlaydigan holatlar mavjud. Ilovani boshqa platformalarda joylashtirish haqida gap ketganda, Kestrel barcha platformalarda HTTP so'rovlarini boshqarish uchun ishlatiladigan asosiy mexanizmdir.

Ammo, IIS-da In-Process-ni ishga tushirish, agar sizda Kestrel uchun juda aniq talab bo'lmasa, eng yaxshi usul.

Asosiy rasm krediti: Unsplash-da Farzad Nazifi olgan surat




Izohlar (0)

Fikr qoldiring