الاختيار بين Apache و NGINX لاحتياجات استضافة الويب الخاصة بك

للبدء بمشروع ويب جديد تمامًا ، فأنت تحتاج حقًا إلى شيئين فقط: موفر استضافة وخادم HTTP (بروتوكول نقل النص التشعبي). يقدم موفرو الخدمات السحابية مثل Amazon Web Services و Microsoft Azure مجموعة من خيارات النظام الأساسي لتلبية متطلبات الحجم والسرعة لموقعك. بمجرد الاشتراك في مضيف سحابي ، يمكنك اختيار خادم HTTP الذي سيتم تشغيله على الأجهزة الافتراضية الخاصة بك.


خادم HTTP مسؤول عن قبول طلبات الويب من زوار موقعك ومن ثم الاستجابة لمتصفحهم بالمحتوى المناسب. على سبيل المثال ، قد يطلب طلب الويب الأساسي محتوى نص HTML وسلسلة من الصور المرتبطة. سيقدم خادم HTTP استجابة على الويب يمكن للمتصفحات مثل Google Chrome أو Mozilla Firefox فهمها وعرضها.

عندما يتعلق الأمر بخوادم HTTP ، يسيطر حلان على معظم المشهد الحالي: Apace و NGINX (والذي يُنطق مثل “Engine X”). تابع القراءة لمعرفة أساسيات كلاهما وكيف يقارنان ببعضهما البعض من حيث العمارة والأداء والفئات الأخرى.

أساسيات أباتشي

حل خادم الويب Apache موجود منذ منتصف التسعينيات. نظرًا لطول عمر البرنامج واستقراره ، فإنه يظل أحد الخيارات الأكثر شيوعًا لاستضافة مواقع الويب. إنه جزء أساسي من حزمة تطوير LAMP ، والتي تستخدمها فرق من جميع الأحجام لنشر التطبيقات الديناميكية على الإنترنت. العناصر الأخرى لمكدس LAMP هي Linux (نظام التشغيل) ، MySQL (قاعدة البيانات) ، و PHP (البرمجة النصية من جانب الخادم).

يتم تقديم Apache كحزمة برامج مجانية مفتوحة المصدر. تتم إدارته وتطويره بواسطة Apache Software Foundation. عندما وصلت شبكة الويب العالمية إلى المشهد في التسعينيات ، كان Apache هو حل الخادم الافتراضي لمعظم مواقع الويب. تم تصميمه مع مراعاة البساطة ، وعلى الرغم من أنه يسمح بالمرونة وقابلية التوسع ، إلا أن أباتشي اكتسب شعبية في وقت كانت فيه مستويات حركة الإنترنت أقل بكثير مما هي عليه اليوم.

أساسيات NGINX

تم إطلاق حل خادم الويب NGINX لأول مرة في عام 2002. وقد تم إنشاؤه من قبل مسؤول أنظمة واحد في روسيا وأصبح جزءًا من مجتمع المصادر المفتوحة بعد ذلك بعامين. يركز التصميم وراء NGINX بشكل خاص على السرعة والأداء ، وهما مجالان يعتقد البعض أن Apache يفتقر إليه. في الواقع ، جاء مشروع NGINX في الأصل بسبب التحدي العام لـ C10K ، والذي طلب من المطورين تصميم حل HTTP يمكنه التعامل مع 10000 مستخدم متزامن بمستوى أداء ثابت.

ازدادت شعبية NGINX على مدى العقد الماضي ، خاصة بين الشركات الناشئة التي تحتاج إلى تطوير أجهزتها بمعدل سريع. ومع ذلك ، بشكل عام يعتبر NGINX أكثر صعوبة في الإعداد والتكامل من Apache.

اعتبارات العمارة

تتضمن حزمة برنامج Apache مجموعة من وحدات المعالجة المتعددة (المعروفة باسم MPMs) والتي تسمح لمسؤول الخادم بتحديد كيفية معالجة حل HTTP الخاص بهم للطلبات. يسمح هذا النوع من الهندسة بمرونة وتخصيص كبيرين.

أبسط وحدة أباتشي هي mpm_prefork. تعمل على منطق واحد ، حيث تعالج كل خادم طلب ويب واحد في كل مرة. هذه هي الوحدة الموصى بها لمشاريع الويب القائمة على لغة برمجة PHP. وحدة Apache أخرى هي mpm_worker ، والتي تدعم العديد من سلاسل الرسائل في نفس الوقت. سيساعد ذلك أباتشي على أن يكون أكثر كفاءة وقابلية للتطوير. تعمل وحدة Apache الأساسية الأخيرة ، mpm_event ، بطريقة مشابهة لـ mpm_worker ولكنها تضيف دعمًا أفضل للاتصالات المستمرة ، وهي متطلبات للعديد من تطبيقات الويب الحديثة.

NGINX تميز نفسها بالتأكيد عن Apache من حيث الهندسة المعمارية. وهو يعتمد على مفهوم العملية القائمة على الأحداث بدلاً من استخدام العمليات أو الخيوط. هذا يعني أن عامل NGINX واحد يمكنه التعامل مع آلاف اتصالات HTTP في نفس الوقت.

تعتمد NGINX على نظام التكرار الذي يسمح للعمال بالتقاط الطلبات الجديدة بسرعة في كل مرة يتم فيها تشغيل الحدث. تتم معالجة الأحداث بشكل غير متزامن ، مما يعني أنه لا يتعين عليهم الانتظار حتى يتم تعيين الأحداث الأخرى بالتسلسل.

معالجة المحتوى

في هذه الأيام ، يندرج محتوى الويب ضمن إحدى فئتين: ثابتة أو ديناميكية. يتضمن المحتوى الثابت أي شيء على صفحة ويب يبقى ثابتًا بغض النظر عن كيفية استخدام الموقع. على سبيل المثال ، يعد شعار الشركة الموجود أعلى موقع ويب جزءًا من محتوى ثابت. من ناحية أخرى ، يتم التحكم في المحتوى الديناميكي من خلال لغات البرمجة مثل PHP وسيتم تغييره بناءً على جلسة المستخدم أو المتغيرات الأخرى. تعتمد مواقع البريد الإلكتروني والمواقع المصرفية والشبكات الاجتماعية جميعها على المحتوى الديناميكي لإظهار بياناتهم الفردية للمستخدمين.

يمكن لـ Apache فقط تقديم محتوى ثابت على أساس سلسلة واحدة ، مما يجعل NGINX حلاً أكثر إقناعًا لمشاريع الويب التي تحتاج إلى كمية كبيرة من المحتوى الثابت يتم تسليمها بسرعة. ومع ذلك ، فإن Apache يقدم بعض الفوائد عندما يتعلق الأمر بالمحتوى الديناميكي. يتكامل بسهولة مع PHP ويمكنه تضمين معالج البرمجة النصية مباشرة في عامل HTTP. لا تتضمن حزمة برامج NGINX الأساسية دعمًا لتسليم المحتوى الديناميكي ، لذلك ستحتاج إلى إضافة معالج خارجي إلى مجموعة البرامج الخاصة بك لدعمه.

مقارنات الأداء

لن يهتم الزائرون الخارجيون لموقعك بنوع خادم HTTP الذي تستخدمه في الواجهة الخلفية. هم معنيين فقط بالوصول إلى المحتوى الخاص بك بسرعة وموثوقية. لهذا السبب ، يجب أن يكون الأداء هو المقياس الرئيسي الذي يجب مراعاته عند تقييم كل من Apache و NGINX كخيارات استضافة ويب.

بفضل بنيتها القائمة على الأحداث ، تعتبر NGINX بشكل عام أسرع حلول HTTP. يعمل على الحد الأدنى من الموارد ، حتى مع نمو حركة المرور على الويب بمرور الوقت. وينتج عن ذلك انخفاض في استخدام الذاكرة ووحدة المعالجة المركزية ، في حين أن أباتشي قد يتطلب المزيد من استخدام الأجهزة خلال أوقات زيادة التحميل.

سهولة التنفيذ

عند التثبيت على خادم ويب كجزء من مكدس برنامج LAMP ، فإن مضيف Apache HTTP سهل التكوين والتشغيل بشكل لا يصدق. لن يحتاج معظم المسؤولين إلى تعديل إعدادات وحدة المعالجة المتعددة على الإطلاق. ستحدث معظم تخصيصات Apache على مستوى الدليل فيما يعرف باسم ملفات htaccess.

تسمح لك هذه العناصر النصية الصغيرة بكتابة القواعد والاتجاهات لكيفية معالجة خادم HTTP لأنواع معينة من الطلبات. على سبيل المثال ، يمكنك تشغيل إعادة كتابة عنوان URL بحيث يقوم عنوان ويب معين في نطاقك بتحميل الموارد من موقع آخر. يُستخدم هذا غالبًا على مواقع التواصل الاجتماعي حيث يظهر “/ username” في نهاية عنوان URL.

لا يدعم NGINX ملفات .htaccess أو أي تكوين آخر على مستوى الدليل. وهذا يجعل معالجة الطلب أسرع وأكثر أمانًا ، ولكنه لا يزال يحد من التحكم الذي يمتلكه مسؤول النظام.

التوافق والدعم

يتم تشغيل خوادم HTTP عادةً على أنظمة التشغيل المستندة إلى UNIX ، خاصةً أنظمة Linux مفتوحة المصدر. هذا من أجل السرعة ، حيث يعتبر UNIX نظام التشغيل الأكثر كفاءة المتاح. يمكن تثبيت كل من Apache و NGINX على توزيعات Linux الشائعة مثل Ubuntu أو BSD.

يقدم Apache أيضًا الدعم الكامل لنظام التشغيل Microsoft Windows Server. يمكن تكوين NGINX للتشغيل على Windows أيضًا ، ولكن بشكل عام يعتبر أقل استقرارًا. إذا كانت مؤسستك تدير Windows بشكل حصري على خوادم الويب الخاصة بها ، فسيكون Apache هو الخيار المنطقي.

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

ملخص

يعد كل من Apache و NGINX حلول خادم HTTP شائعة جدًا في عالم اليوم الحديث للحوسبة السحابية. تستخدم معظم أفضل شركات الاستضافة في كندا Apache و NGINX.

يعد إدراج أي منهما في حزمة التطوير خيارًا حكيمًا ، حيث سيوفر أداءً موثوقًا وثقة.

إذا كانت السرعة هي أولويتك القصوى وسيستضيف موقعك الإلكتروني كمية كبيرة من المحتوى الثابت ، فقد يكون NGINX هو الخيار الأفضل. كما أنها أصبحت الخيار المفضل بين فرق التطوير الذين يقومون ببناء بنية خدمة صغيرة مع الكثير من الأنظمة الفرعية التي تتفاعل مع بعضها البعض. من ناحية أخرى ، قد يكون المطورون الصغار أو المبتدئون في وضع أفضل مع التمسك بـ Apache حيث أنه من الأسهل إعداده ويأتي مهيأ مسبقًا مع حزم برامج خارجية مثل LAMP.

هناك شيء واحد يجب وضعه في الاعتبار هو أنك لا تحتاج بالضرورة إلى الاختيار بين Apache و NGINX ونسيان الآخر. في الواقع ، غالبًا ما يتم استخدام الحلين جنبًا إلى جنب لتقديم أفضل تجربة استضافة ويب ممكنة. من خلال إعداد NGINX كخادم وكيل أولي للويب ، يمكن معالجة الطلبات بسرعة وإرسالها إلى عامل Apache في نهاية التطبيق. من هناك ، يمكن لـ Apache الاندماج مع PHP أو لغة برمجة نصية أخرى لإعداد استجابة الويب وتكرارها إلى طبقة NGINX.

تأكد من إجراء بحثك عند اختيار حل خادم HTTP. سيصبح النظام الذي اخترته جزءًا من العمود الفقري لموقعك على الويب أو تطبيقك وسيكون مهمًا في تجربة المستخدمين اليومية.

ربما يعجبك أيضا:

  • أفضل استضافة المواقع
  • أفضل منشئ موقع

المراجع واعتمادات الصورة:

  • Nginx.com
  • ESDS.co.in
  • TutorialsPoint.com
  • NTU.edu.sg
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector