انتخاب بین Apache و NGINX برای نیازهای میزبان وب شما

برای شروع کار با یک پروژه وب کاملاً جدید ، شما فقط به دو چیز نیاز دارید: یک ارائه دهنده هاستینگ و یک سرور HTTP (پروتکل انتقال HyperText). ارائه دهندگان ابری مانند خدمات وب آمازون و مایکروسافت لاجورد طیف وسیعی از گزینه های پلتفرم را برای پاسخگویی به اندازه و سرعت درخواست سایت شما ارائه می دهند. پس از ورود به سیستم میزبان ابر ، می توانید کدام سرور HTTP را برای سخت افزار مجازی خود اجرا کنید.


یک سرور HTTP مسئولیت پذیرش درخواست های وب از بازدید کنندگان سایت شما را دارد و سپس با محتوای مناسب به مرورگر آنها پاسخ می دهد. به عنوان مثال ، یک درخواست اولیه وب ممکن است از متن متنی HTML و یک سری تصاویر مرتبط استفاده کند. سرور HTTP پاسخ وب را ارائه می دهد که مرورگرهایی مانند Google Chrome یا Mozilla Firefox قادر به درک و نمایش هستند.

در مورد سرورهای HTTP ، دو راه حل بر بیشتر چشم انداز فعلی حاکم است: Apace و NGINX (که مانند “موتور X” تلفظ می شود). برای یادگیری اصول اولیه هر دو و چگونگی مقایسه آنها با یکدیگر از نظر معماری ، عملکرد و مقوله های دیگر بخوانید.

مبانی آپاچی

راه حل وب سرور آپاچی از اواسط دهه 1990 میلادی آغاز شده است. با توجه به ماندگاری و ثبات نرم افزار ، یکی از محبوب ترین گزینه ها برای میزبانی وب سایت هاست. این بخش مهمی از پشته توسعه LAMP است که توسط تیم هایی با اندازه ها برای استقرار برنامه های پویا در اینترنت استفاده می شود. سایر عناصر پشته LAMP عبارتند از: لینوکس (سیستم عامل) ، MySQL (بانک اطلاعاتی) و PHP (اسکریپت نویسی سمت سرور).

Apache به عنوان یک بسته نرم افزاری منبع باز آزاد ارائه می شود. توسط بنیاد نرم افزار آپاچی مدیریت و توسعه یافته است. هنگامی که وب سایت جهانی در دهه 1990 وارد صحنه شد ، آپاچی راه حل پیش فرض سرور برای اکثر وب سایت ها بود. این طراحی با سادگی در ذهن طراحی شده است ، و اگرچه امکان انعطاف پذیری و مقیاس پذیری را فراهم می کند ، آپاچی در زمانی که سطح ترافیک اینترنت بسیار پایین تر از حد امروزی بود ، محبوبیت خود را پیدا کرد..

مبانی NGINX

راه حل وب سرور NGINX اولین بار در سال 2002 منتشر شد. این توسط یک مدیر سیستم واحد در روسیه ایجاد شد و دو سال بعد به بخشی از جامعه منبع باز تبدیل شد. طراحی پشت NGINX به طور خاص روی سرعت و کارایی تمرکز دارد ، دو زمینه ای که برخی معتقدند آپاچی فاقد آن است. در واقع ، پروژه NGINX در ابتدا به دلیل چالش عمومی C10K به وجود آمد ، که از توسعه دهندگان خواسته است یک راه حل HTTP طراحی کنند که بتواند 10،000 کاربر همزمان را در سطح عملکرد ثابت اداره کند..

NGINX طی یک دهه گذشته محبوبیت زیادی پیدا کرده است ، به خصوص در میان راه اندازی هایی که نیاز به سرعت سخت افزاری خود دارند. با این حال ، به طور کلی NGINX تنظیم و ادغام سخت تر از آپاچی در نظر گرفته می شود.

ملاحظات معماری

بسته نرم افزاری Apache شامل مجموعه ای از ماژول های چند پردازش (معروف به MPM) است که به سرور سرور اجازه می دهد تا نحوه استفاده از راه حل HTTP خود را با درخواست ها مشخص کند. این نوع معماری امکان انعطاف پذیری و سفارشی سازی عالی را فراهم می آورد.

اساسی ترین ماژول آپاچی mpm_prefork است. این کار با منطق تک رشته ای انجام می شود ، جایی که هر فرآیند سرور یک بار درخواست یک وب را کنترل می کند. این ماژول پیشنهادی برای پروژه های وب مستقر در زبان اسکریپت PHP است. ماژول دیگر Apache mpm_worker است که همزمان از چندین موضوع پشتیبانی می کند. این به Apache کمک می کند تا کارآمدتر و مقیاس پذیرتر باشد. آخرین ماژول اصلی آپاچی ، mpm_event ، با روشی مشابه mpm_worker عمل می کند اما پشتیبانی بهتر از اتصالات زنده نگه می دارد ، که برای بسیاری از برنامه های وب مدرن مورد نیاز است..

NGINX قطعاً از لحاظ معماری خود را از آپاچی متمایز می کند. این امر بیشتر از مفهوم عملکرد مبتنی بر رویداد است تا استفاده از فرآیندها یا موضوعات. این بدان معنی است که یک کارگر NGINX تنها می تواند هزاران اتصال HTTP را همزمان انجام دهد.

NGINX به یک سیستم حلقه ای متکی است که به کارگران اجازه می دهد هر بار که یک رویداد رخ می دهد ، سریعاً درخواست های جدید را انتخاب کنند. رویدادها بصورت غیر همزمان پردازش می شوند ، به این معنی که آنها مجبور نیستند منتظر بمانند که وقایع دیگر به صورت متوالی اختصاص یابد.

رسیدگی به محتوا

این روزها محتوای وب در یکی از دو دسته قرار می گیرد: استاتیک یا پویا. محتوای استاتیک شامل هر چیزی در یک صفحه وب است که بدون توجه به نحوه استفاده سایت ، ثابت می ماند. به عنوان مثال ، یک آرم شرکت در بالای یک وب سایت تکه ای از محتوای استاتیک است. از طرف دیگر ، محتوای پویا با زبانهای اسکریپت مانند PHP کنترل می شود و بر اساس جلسه کاربر یا متغیرهای دیگر تغییر خواهد کرد. سایت های ایمیل ، سایت های بانکی و شبکه های اجتماعی همه به محتوای پویا تکیه می کنند تا داده های فردی خود را به کاربران نشان دهند.

Apache فقط می تواند محتوای استاتیک را به صورت تک رشته ای ارائه دهد ، که باعث می شود NGINX یک راه حل قانع کننده تر برای پروژه های وب باشد که نیاز به مقدار زیادی از محتوای استاتیک سریع داشته باشند. با این حال ، آپاچی در مورد محتوای پویا مزایایی را ارائه می دهد. به راحتی با PHP ادغام می شود و می تواند یک پردازنده اسکریپت را مستقیماً در کارگر HTTP جاسازی کند. بسته نرم افزاری اساسی NGINX شامل پشتیبانی از تحویل محتوای پویا نمی باشد ، بنابراین برای پشتیبانی از آن باید یک پردازنده خارجی را به پشته نرم افزار خود اضافه کنید..

مقایسه عملکرد

بازدید کنندگان خارج از وب سایت شما اهمیتی نخواهند داد که از چه نوع سرور HTTP استفاده می کنید. آنها فقط نگران دسترسی سریع به مطالب شما هستند. به همین دلیل ، عملکرد باید معیار کلیدی باشد که هنگام ارزیابی هر دو Apache یا NGINX به عنوان گزینه های میزبانی وب در نظر بگیرید.

به لطف معماری رویداد محور ، NGINX معمولاً سریعترین راه حل HTTP به حساب می آید. این کار با حداقل منابع انجام می شود ، حتی با افزایش زمان ترافیک وب شما. این منجر به حافظه کم و استفاده از پردازنده می شود ، در حالی که ممکن است Apache در زمان افزایش بار به استفاده از سخت افزار بیشتری نیاز داشته باشد.

سهولت اجرای

هنگام نصب بر روی یک سرور وب به عنوان بخشی از نرم افزار LAMP ، میزبان Apache HTTP برای پیکربندی و اجرای بسیار ساده است. اکثر مدیران اصلاً نیازی به اصلاح تنظیمات ماژول چند پردازش نخواهند داشت. بیشترین سفارشی سازی آپاچی در آنچه در پرونده های htaccess شناخته شده است در سطح دایرکتوری رخ می دهد.

این موارد متنی کوچک به شما امکان می دهد قوانین و دستورالعمل هایی را برای نحوه سرور HTTP به انواع خاصی از درخواست ها بنویسید. به عنوان مثال ، می توانید بازنویسی URL را روشن کنید تا یک آدرس وب خاص در دامنه شما منابع خود را از یک مکان دیگر بارگیری کند. این اغلب در وب سایت های رسانه های اجتماعی که “/ نام کاربری” در انتهای URL ظاهر می شود ، استفاده می شود.

NGINX از پروندههای HTML یا پیکربندی دیگر در سطح فهرست پشتیبانی نمی کند. این امر باعث می شود پردازش درخواست سریعتر و ایمن تر شود ، اما هنوز کنترلی را که یک مدیر سیستم در اختیار دارد محدود می کند.

سازگاری و پشتیبانی

سرورهای HTTP به طور معمول بر روی سیستم عامل های مبتنی بر UNIX ، به خصوص سیستم عامل های منبع باز لینوکس اجرا می شوند. این به خاطر سرعت است ، زیرا UNIX به عنوان کارآمدترین سیستم عامل موجود در نظر گرفته شده است. هر دو Apache و NGINX را می توان در توزیع محبوب لینوکس مانند اوبونتو یا BSD نصب کرد.

Apache همچنین پشتیبانی کاملی از سیستم عامل Microsoft Windows Windows Server ارائه می دهد. NGINX را می توان پیکربندی کرد تا در ویندوز نیز اجرا شود اما به طور کلی پایدارتر به نظر می رسد. اگر سازمان شما منحصراً ویندوز را روی سرورهای وب خود اجرا کند ، آپاچی گزینه منطقی خواهد بود.

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
    Like this post? Please share to your friends:
    Adblock
    detector
    map