دوشنبه, ۱۴ خرداد, ۱۴۰۳ / 3 June, 2024
مجله ویستا

رقیب جوان برای آپاچی


رقیب جوان برای آپاچی

مقایسه Nginx و Apache از نظر فنی

آپاچی، وب‌سرور آزاد و منبع‌بازی است که بتازگی پا به بیست و پنج سالگی گذاشته است. این وب‌سرور قدرتمند نقش زیادی در پشتیبانی وب‌سایت‌ها، بخصوص در زمان اوجگیری محبوبیت اینترنت داشته است و امروزه یکی از محبوب‌ترین سرورها به‌شمار می‌رود، اما آیا آپاچی هنوز بهترین وب‌سروری است که می‌توان استفاده کرد؟

nginx (انجین‌اکس) سرور خوبی است که می‌تواند سریع و کم‌هزینه باشد و در سرویس‌دهی محتوای ثابت، قدرتمند عمل کند. ادعای انجین‌اکس مصرف پایین حافظه است و برای اجرا در سرورهای شخصی مجازی توصیه می‌شود.

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

● معماری

آپاچی، سروری مبتنی بر پروسس است، در حالی که انجین‌اکس بر مبنای event کار می‌کند.

انجین‌اکس و Lighttpd دو سرور مشهور ناهمخوان (Asynchronous) به‌شمار می‌روند، در حالی که آپاچی بهترین سرور پروسسی است. مزیت استفاده از معماری ناهمخوان، قابلیت بزرگ شدن است. در سرورهای پروسس محور، هر ارتباط همزمان نیاز به نخی (Thread) دارد که باعث سرریز بیش از حد می‌شود. یک سرور ناهمخوان، رویداد محور است و می‌تواند درخواست‌ها را در یک یا چند نخ، کنترل و مدیریت کند.

سرورهای پروسس محور معمولا در زمان بار اندک بخوبی می‌توانند با سرعت سرورهای ناهمخوان کار کنند، اما وقتی بار سرور زیاد می‌شود، میزان رم مصرفی آنها زیاد و بازدهی‌شان به همین اندازه کم می‌شود. همچنین بازدهی این سرورها روی سخت‌افزارهای ضعیف‌تر پایین است و مثلا در محیط‌هایی مانند VPS که منابع محدود در اختیار سیستم قرار دارد، بازدهی خوبی ندارد.

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

● قابلیت‌ها

انجین‌اکس همانند آپاچی از تمام قابلیت‌های یک سرور وب پشتیبانی می‌کند:

ـ سرویس‌دهی به فایل‌های استاتیک

ـ پشتیبانی از SSL‌/‌TLS

ـ میزبان‌های مجازی (Virtual Hosts)

ـ پروکسی معکوس

ـ بالانس کردن بار سرور

ـ فشرده‌سازی

ـ سطوح دسترسی

ـ دوباره نوشتن URLها (URL Rewriting)

ـ گزارش‌گیری مخصوص

ـ افزونه‌های سمت سرور

ـ WebDAVمحدود

ـ استریم فایل‌هایFLV

ـ پشتیبانی از FastCGI

انجین‌اکس نصب و راه‌اندازی ساده‌ای دارد و تا حد زیادی امن است. هر چند مزیت اصلی استفاده از Nginx نسبت به آپاچی، بازدهی و کارایی بهتر آن است. دریافت بیشترین کارایی از VPS و پیشرفت یک وب‌سایت با حفظ کارایی از قابلیت‌های انجین‌اکس است.

البته آپاچی نیز نسبت به انجین‌اکس قابلیت‌هایی دارد که از میان آنها، می‌توان به موارد زیر اشاره کرد:

ـ احراز هویت کوتاه

ـ CGI

ـ کنسول مدیریتی

● بازدهی

انجین‌اکس در ارائه فایل‌های استاتیک به درخواست‌های موازی، حافظه بسیار کمتری مصرف می‌کند و دلیل اصلی آن نیز رویدادمحور بودن آن است. این سرور نیازی به ایجاد پروسس یا نخ جدید برای هر درخواست ندارد و به‌همین دلیل، استفاده از حافظه بسیار کم خواهد شد.

وردپرس، انجین‌اکس را به این دلیل پیاده‌سازی کرد که بتواند ۸۰۰۰ درخواست را در ثانیه بالانس کند.

فرض کنید وب‌سایتتان روزانه ده‌ها میلیون بازدیدکننده دارد. انجین‌اکس می‌تواند پروکسی معکوس این درخواست‌ها را (که برابر با چند صد درخواست در یک ثانیه می‌شود) روی یک سرور و با حافظه کمتر از ۲۴ مگابایت پاسخ دهد.

اگر همین فشار روی آپاچی وارد شود‌ (بعد از استفاده از هزار پروسس و میزان زیادی رم) آپاچی بازدهی خود را از دست می‌دهد و بیش از ۴۰۰ مگابایت رم برای سرویس‌دهی استفاده و حدود ۲۰ مگابایت در هر ساعت حافظه نشت می‌کند.

● سادگی استفاده

وب‌سایت Justin.tv (که به استریم زنده ویدئوها می‌پردازد) دلیل استفاده از انجین‌اکس خود را این طور بیان کرده است:

قبلا از Pound برای بالانس بار سرور استفاده می‌کردیم. استفاده از CPU به‌طور ثابت حدود ۲۰درصد بود و در زمان‌های شلوغی به ۸۰درصد می‌رسید. وقتی تحت بار ترافیکی بودیم، سرور معمولا از کار می‌افتاد. پس از این‌که به Nginx آمدیم، سرور حدود ۳درصد حافظه مصرف می‌کرد. بارگذاری صفحه‌ها سریع‌تر به‌نظر می‌رسید و پیکربندی آن آنقدرساده بود که گمان نمی‌کردیم تمام کارهای سرور را انجام دهد.

● محبوبیت

سال ۲۰۰۹ آپاچی نخستین وب‌سروری بود که بیش از صد میلیون وب‌سایت را میزبانی می‌کرد. از سال ۱۹۹۶ تاکنون، این وب سرور محبوب‌ترین سرور HTTP در وب بوده است. سال ۲۰۰۹، این وب‌سرور حدود ۴۶‌درصد کل وب‌سایت‌ها و ۶۶ درصد وب‌سایت‌های شلوغ را میزبانی کرده است.

سهم بازار آپاچی از اوایل سال ۲۰۱۰ با رشد خوبی مواجه بوده و Nginx نیز از سال ۲۰۰۹ به بعد جایگاه خوبی در بازار برای خود دست و پا کرده است.

● مجوزها

انجین‌اکس تحت مجوز Simplified BSD منتشر شده که نسخه ساده‌ شده‌ای از مجوز BSD است. این انتخاب باعث شده همکاری میان انجین‌اکس و پروژه‌های مشابه که با مجوزهای دیگر منتشر شده‌اند، محدود شود.

آپاچی از مجوز آپاچی ۲ استفاده می‌کند که معمولا مجوز آسان‌گیری قلمداد می‌شود. البته اصلاح نرم‌افزار و توزیع مجدد آن با محدودیت‌هایی مواجه است که شباهت‌هایی به مجوز Simplified BSD دارد.

محمدرضا قربانی