مدل میزبان هسته Asp.Net چگونه در برنامه های وب استفاده می شود؟



هسته Asp.net از مدل میزبان پیشرفت چشمگیری دارد. انتظار می رفت در نسخه های قبلی میزبان برنامه های وب Asp.net Core از طریق سرورهای وب پروکسی مانند IIS در ویندوز ، آپاچی یا NGINX باشد. با این حال ، هسته جدید Asp.net 2.2 اجازه می دهد تا به طور مستقیم برنامه Asp.net را در ویندوز در IIS بدون نیاز به سرور خارجی میزبانی کنید. بنابراین ، این با استفاده از مکانیسم میزبانی ساده در فرآیند ، توان را افزایش می دهد.

میزبانی مدل ها در هسته اصلی ASP.NET

ASP.NET یک فناوری از مایکروسافت است که به شما امکان می دهد صفحات پویا را در سمت سرور وب ایجاد کنید.

میزبانی ASP.NET کاملاً با نرم افزار مبتنی بر ویندوز و همچنین با سیستم عامل یکپارچه شده است. این فناوری کاملاً ایمن و قابل اعتماد در نظر گرفته می شود و همچنین استفاده از آن آسان است. این ماده عمدتاً برای توسعه محصولات درون برنامه ای استفاده می شود.

مدل هاستینگ در هسته اصلی ASP.NET از دو نوع است یعنی میزبانی در فرآیند و میزبانی خارج از فرآیند. قبل از ASP.Net Core 2.2 فقط یک مدل میزبانی وجود داشت که میزبانی خارج از فرآیند است اما به دلیل عملکرد ، مدل میزبانی In-Proces در Asp.net core 2.2 نسخه معرفی شده است.

معرفی مدل میزبانی در فرآیند در هسته Asp.net

نسخه های قبلی ASP.NET Core به یک شخص نیاز داشت تا با استفاده از یک مدل میزبانی خارج از فرآیند که از طریق IIS پروکسی می کند ، برنامه را در IIS میزبانی کند. درخواستهای IIS یا IIS Express به برنامه وب هسته ASP.NET ارسال شده در وب سرور Kestrel ارسال می شود. با این حال ، با میزبانی جدید In-process ، فقط یک سرور برای میزبانی مانند IIS ، Nginx یا Linux استفاده می شود. این بدان معناست که به جای ارسال درخواست به Kestrel ، اجرای جدید وب سرور (IISHttpServer) مستقیماً در داخل استخر برنامه IIS میزبانی می شود ، این درخواست را ارائه می دهد. با وجود ASP.NET Core 3.1 ، هر زمان که برنامه جدیدی را با استفاده از یک الگوی موجود ایجاد کنید ، از مدل میزبانی در فرآیند به عنوان یک مدل پیش فرض استفاده می شود.

ظاهراً ، این مدل میزبانی از توان و عملکرد بسیار بالایی در مقایسه با مدل میزبان خارج از فرآیند برخوردار است.

مدل میزبانی خارج از فرآیند

در مدل های میزبانی خارج از فرآیند ، می توانید مستقیماً از سرور Kestrel به عنوان درخواست کاربر روبرو استفاده کنید یا می توانید برنامه را در IIS مستقر کنید که به عنوان یک پروکسی سرور عمل می کند و درخواست ها را به سرور داخلی Kestrel ارسال می کند. در این نوع مدل میزبانی ، شما باید دو گزینه برای میزبانی داشته باشید یعنی با استفاده از Kestrel و Proxy Server:

1. با استفاده از Kestrel

در این حالت ، خود Kestrel به عنوان سرور لبه عمل می کند که مستقیماً از کاربر سرور درخواست می کند ، بدین معنی که فقط می توان از سرور Kestrel برای برنامه استفاده کرد.

2. با استفاده از سرور پروکسی

به دلیل محدودیت های سرور Kestrel ، نمی توان از همه این برنامه ها استفاده کرد. در چنین مواردی ، شخص باید از سرورهای قدرتمندی مانند IIS ، Apache یا NGINX استفاده کند. بنابراین ، در این شرایط ، این سرور به عنوان یک سرور پروکسی ذخیره عمل می کند که هر درخواست را به قسمت داخلی Kestrel که برنامه در آن اجرا می شود ، هدایت می کنید. در اینجا دو سرور مانند IIS و Kestrel در حال اجرا هستند.

این مدل میزبان یک الگوی پیش فرض برای کلیه برنامه هایی است که در نسخه های قبلی NET Core 2.2 پیاده سازی شده است. یکی از محدودیت های استفاده از این نوع مانند کندی عملکرد.

افکار نهایی:

طبق واقعیت ها ، اکثر  شرکت های توسعه وب ASP.Net   مطمئناً می خواهند از مدل میزبانی In-Proction استفاده کنند. از آنجا که منابع کمتری مصرف می کند و عملکرد خوبی را ارائه می دهد. از آنجا که نیازی به یک فرآیند اضافی برای Kestrel نیست و همچنین از ارتباطات اضافی بین IIS و Kestrel جلوگیری می کند. با این وجود مواردی وجود دارد که ممکن است شخص بخواهد میزبانی خارج از فرآیند را انتخاب کند ، مانند میزبانی از همان برنامه وب در ویندوز و لینوکس. هنگام صحبت درباره میزبانی برنامه در سیستم عامل های دیگر ، Kestrel مکانیسم اصلی است که برای رسیدگی به درخواست HTTP در تمام سیستم عامل ها بکار می رود.

با این حال ، اجرای In-Process در IIS بهترین راه است مگر اینکه یک مورد خیلی خاص برای Kestrel داشته باشید.

اعتبار تصویر اصلی: عکس فرزاد نظیفی در Unsplash




نظرات (0)

پیام بگذارید