تفاوت Nginx و Apache: بررسی دو وب‌سرور محبوب

تفاوت Nginx و Apache

صفحات وب در حقیقت اسناد HTML هستند. برای اینکه این صفحات را به کاربران اینترنت ارایه دهیم، دستگاه‌هایی بایستی قابلیت‌هایی در خود داشته باشند. برای این کار از طریق نرم‌افزارهایی مانند Nginx و Apache درخواست‌های بازدیدکنندگان مدیریت شده، تحلیل می‌شود و سپس صفحه مورد تقاضا به کاربر ارایه خواهد شد.

تفاوت Nginx و Apache

Nginx و Apache دو وب سرور محبوب هستند که برای ارایه صفحات وب به مرورگر کاربر مورد استفاده قرار می‌گیرند:

  • Apache ابتدا در سال ۱۹۹۵ ارایه شد اما Nginx در سال ۲۰۰۴ معرفی شد.
  • هر دوی Apache و Nginx در لیست ۵۰۰ شرکت فورچون قرار دارند.
  • بازار Nginx به صورت مداوم طی سال‌های گذشته رو به افزایش است.
  • در برخی موارد، Nginx بهتر از رقیب خود عمل می‌کند.

Apache

برای درک دقیق تفاوت Nginx و Apache بایستی ابتدا به معرفی Apache بپردازیم.

پس از چند سال ابتدایی خلق اینترنت، سرور Apache در سال ۱۹۹۵ به سرعت بازار را در دست گرفت و به محبوب‌ترین وب‌سرور دنیا تبدیل شد. در حال حاضر هنوز موقعیت Apache در بازار قابل توجه است اما علت این جایگاه به قدمت آن بازمی‌گردد. Apache توسط بنیاد Apache تحت لایسنس Apache توسعه داده شده است.

دو روایت در خصوص چرایی نام Apache وجود دارد. در روایت اول، نام آن از مردم بومی آمریکا گرفته شده است و روایت دوم نیز می‌گوید از عبارت “a patchy server” گرفته شده است که به معنی مجموعه‌ای از پچ‌های نرم‌افزاری است.

لینوکس

سهم بزرگ بازار Apache بیشتر به دلیل این واقعیت است که این نرم‌افزار به صورت از پیش‌نصب‌شده همراه با تمام توزیع‌های بزرگ لینوکس می‌آید، مانند ردهت، سنت‌اواس و اوبونتو.

htaccess.

Apache از htaccess. برای پیکربندی خود استفاده می‌کند. در خصوص htaccess در وردپرس در اینجا توضیح داده‌ایم.

یکی از مهمترین مزایای Apache این است که در ریشه سرور، هر سطح یا پوشه‌ای می‌تواند فایل htaccess. خود را با پیکربندی منحصربه‌فرد خود داشته باشد.

این امتیاز برای هاست‌های اشتراکی در حد یک رویای دست‌نیافتنی بوده است چرا که می‌توانند صدها کاربر را بر روی یک دستگاه با پیکربندی متفاوت بدون تاثیر بر عملکرد کاربر دیگر تعریف کنند. مشتریان می‌توانند جزییات زیادی را در محیط محدود هاست‌های اشتراکی تعریف کنند در حالیکه تغییری در پیکربندی سرور اصلی ایجاد نمی‌کنند.

این انعطاف‌پذیری بهرحال به قیمت تاثیر بر کیفیت کار تمام می‌شود و بدون اینکه حتی یک کاربر از این فایل پیکربندی هم استفاده‌ای کرده باشد بایستی بهای آن را بپردازد.

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

در وردپرس، این وضعیت پیچیده‌تر هم می‌شود. در یک وبسایت وردپرسی ممکن است که صدها درخواست از پوشه‌های مختلف ایجاد شود که در نتیجه وضعیت را بغرنج‌تر خواهد کرد.

ماژول‌ها

مساله دیگری که باعث محبوبیت Apache شد، سیستم پویای ماژول آن است.

ماژول‌ها در هر دوی Nginx و Apache وجود دارند. تفاوت Nginx و Apache در این است که در Apache کاربران اجازه نصب ماژول‌های مدنظر خود را پس از نصب و پیاده‌سازی وب‌سرور و فعال/غیرفعال کردن آنها را دارند.

لیستی از ماژول‌های در دسترس که همراه با توزیع استاندارد Apache ارایه می‌شوند در اینجا لیست شده‌اند. این لیست شامل ماژول‌هایی برای فشرده‌سازی، رمزنگاری، گزارش‌گیری، تغییر مسیر هستند.

Nginx

Nginx (که به صورت nginx یا NGINX نیز نوشته می‌شود) از سال ۲۰۰۴ توسط توسعه دهنده روسی – قزاقی Igor Sysoev وارد بازار شده است. به گفته او: «Nginx برای رفع محدودیات Apache عرضه شده است.»

در مارس ۲۰۱۹ Nginx شرکت F5 را به مبلغ ۶۷۰ میلیون دلار خریداری کرد.

سهم Nginx از بازار وب‌سرورها رو به فزونی گذاشته است و در حال حاضر به نسب Apache تقریبا سهم بیشتری از بازار را در اختیار خود دارد. در همین خصوص در تصویر زیر تفاوت Nginx و Apache را می‌توانید مشاهده کنید:

تفاوت Nginx و Apache

پیکربندی Nginx

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

ماژول‌های Nginx

سیستم ماژول Nginx بایستی هنگام ساخت آن فعال شوند که برخلاف امکانی است که Apache در اختیار مدیر سرور قرار می‌دهد.

مدیریت درخواست‌ها: تفاوت Nginx و Apache

بزرگترین تفاوت Nginx و Apache در معماری این دو در مدیریت درخواست‌ها است.

Apache به شیوه‌ای به نام MPM درخواست‌ها را پردازش می‌کند. اولین MPM که Apache در ابتدا استفاده می‌کرد ماژول prefork نام داشت. این ماژول باعث بدنامی Apache نیز در مقطعی شد. این ماژول از mod_php استفاده می‌کند یعنی اینکه هر پردازش نیاز به یک مفسر PHP خواهد داشد حتی اگر این پردازش یک تصویر یا فایل CSS باشد.

همین مساله نکته منفی برای Apache محسوب می‌شد. بعدا با توسعه MPM مساله ایجاد شده برای عملکرد Apache تا حدی برطرف شد. در مقابل Nginx از معماری غیرهمزمان استفاده می‌کند.

در سال ۲۰۰۸، وردپرس برای ارایه خدمات خود بر روی WordPress.com به Nginx نقل مکان کرد.

بررسی سرور وبسایت

اگر می‌خواهید وب سرور وبسایت مدنظر خود را بررسی کنید بایستی هدرهای HTTP آن را بررسی کنید. برای اینکار به وبسایت مدنظر خود بروید و بر روی صفحه راست کلیک کنید و گزینه Inspect را انتخاب کنید سپس در تب Network بر روی reload کلیک کنید. پس از اینکه صفحه به صورت کامل و دوباره بارگذاری شد بر روی یکی از اسنادی که در لیست مشاهده میکنید کلیک کنید و در صفحه باز شده تب Headers را انتخاب کنید. در این بخش نام سرور نمایان می‌شود.

یافتن نام سرور

۳.۵ / ۵. ۲

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *