كيف يستخدم نموذج استضافة Asp.Net Core في تطبيقات الويب؟



يحتوي Asp.net core على تحسين كبير لنموذج الاستضافة. كان من المتوقع في الإصدارات السابقة استضافة تطبيقات الويب Asp.net Core من خلال خوادم الويب الوكيل مثل IIS على Windows أو Apache أو NGINX. ومع ذلك ، يسمح Asp.net core 2.2 الجديد باستضافة تطبيق Asp.net مباشرة في Windows داخل IIS بدون متطلبات الخادم الخارجية. وبالتالي ، فإن هذا يزيد من الإنتاجية باستخدام آلية استضافة بسيطة في العملية.

استضافة النماذج في ASP.NET Core

ASP.NET هي تقنية من Microsoft تتيح لك إنشاء صفحات ديناميكية على جانب خادم الويب.

تم دمج استضافة ASP.NET بالكامل مع البرامج القائمة على Windows وكذلك مع نظام التشغيل نفسه. تعتبر هذه التكنولوجيا آمنة وموثوقة تمامًا ، وكذلك سهلة الاستخدام. يستخدم بشكل أساسي لتطوير المنتجات داخل التطبيق.

نماذج الاستضافة في ASP.NET Core من نوعين ، أي الاستضافة قيد المعالجة والاستضافة خارج المعالجة. قبل ASP.Net Core 2.2 كان هناك نموذج استضافة واحد فقط ، وهو الاستضافة خارج المعالجة ولكن بسبب الأداء ، تم تقديم نموذج الاستضافة قيد المعالجة في إصدارات Asp.net core 2.2.

تقديم نموذج الاستضافة قيد التشغيل في Asp.net Core

تطلبت الإصدارات السابقة من ASP.NET Core واحدًا لاستضافة التطبيق في IIS باستخدام نموذج استضافة خارج المعالجة يقوم بالبروكسي من خلال IIS. تتم إعادة توجيه الطلبات التي تضغط على IIS أو IIS Express إلى تطبيق الويب ASP.NET Core الذي يعمل ضمن Kestrel Web Server. ومع ذلك ، مع الاستضافة الجديدة قيد التشغيل ، يتم استخدام خادم واحد فقط للاستضافة مثل IIS أو Nginx أو Linux. هذا يعني أنه بدلاً من إعادة توجيه الطلبات إلى Kestrel ، يتم استضافة تطبيق خادم ويب جديد (IISHttpServer) مباشرة داخل تجمع تطبيقات IIS ، والذي سيخدم الطلب. باستخدام ASP.NET Core 3.1 ، يتم استخدام نموذج الاستضافة قيد المعالجة كنموذج افتراضي كلما قمت بتطوير تطبيق جديد باستخدام قالب موجود.

يبدو أن نموذج الاستضافة هذا لديه إنتاجية عالية وتحسين للأداء عند المقارنة مع نموذج الاستضافة خارج المعالجة.

نموذج استضافة خارج المعالجة

في نماذج الاستضافة خارج المعالجة ، يمكنك إما استخدام خادم Kestrel مباشرة كطلب مستخدم يواجه الخادم أو يمكنك نشر التطبيق في IIS الذي سيكون بمثابة خادم وكيل ويرسل الطلبات إلى خادم Kestrel الداخلي. في هذا النوع من نموذج الاستضافة ، لديك خياران للاستضافة ، أي باستخدام Kestrel و Proxy Server:

1. استخدام كيستريل

في هذا ، Kestrel نفسها تعمل كخادم حافة الذي يطلبه مستخدم الخادم مباشرة مما يعني أنه يمكن للمرء فقط استخدام خادم Kestrel للتطبيق.

2. استخدام خادم وكيل

بسبب قيود خادم Kestrel ، لا يمكن للمرء استخدام هذا في جميع التطبيقات. في مثل هذه الحالات ، يجب على المرء استخدام خوادم قوية مثل IIS أو Apache أو NGINX. لذلك ، في هذه الحالة ، يعمل هذا الخادم كخادم وكيل احتياطي سيعيد توجيه كل طلب إلى قسم Kestrel الداخلي حيث يتم تشغيل التطبيق. هنا ، يعمل خادمان مثل IIS و Kestrel.

يعد نموذج الاستضافة هذا نموذجًا افتراضيًا لجميع التطبيقات التي تم تنفيذها في وقت سابق من إصدار .NET Core 2.2. أحد قيود استخدام هذا النوع مثل بطء الأداء.

افكار اخيرة:

وفقًا للحقائق ، تريد معظم  شركات تطوير الويب ASP.Net   بالتأكيد استخدام نموذج استضافة In-Process. لأنها تستهلك موارد أقل وتوفر أداءً جيدًا. نظرًا لأنه لا يحتاج إلى عملية إضافية لـ Kestrel ويتجنب أيضًا الاتصال الإضافي بين IIS و Kestrel. ومع ذلك ، هناك حالات قد يرغب فيها المرء في اختيار استضافة خارج المعالجة ، كما هو الحال في حالة استضافة تطبيق الويب نفسه في نظامي التشغيل Windows و Linux. عند الحديث عن استضافة التطبيق على منصات أخرى ، فإن Kestrel هو الآلية الأساسية المستخدمة للتعامل مع طلبات HTTP على جميع الأنظمة الأساسية.

ومع ذلك ، فإن تشغيل In-Process على IIS هو أفضل طريقة ما لم يكن لديك متطلبات محددة للغاية لـ Kestrel.

مصدر الصورة الرئيسية: تصوير فرزاد النزيفي على Unsplash




تعليقات (0)

اترك تعليقا