nginx (انجیناکس) سرور خوبی است که میتواند سریع و کمهزینه باشد و در سرویسدهی محتوای ثابت، قدرتمند عمل کند. ادعای انجیناکس مصرف پایین حافظه است و برای اجرا در سرورهای شخصی مجازی توصیه میشود.
آپاچی را میتوان از جهاتی با مایکروسافت ورد مقایسه کرد. این وبسرور میلیونها گزینه دارد که از این میان شاید به شش تای آنها نیاز باشد. انجیناکس، شش گزینه بیشتر ندارد که پنج مورد را سریع و مفیدتر از آپاچی انجام میدهد.
معماری
آپاچی، سروری مبتنی بر پروسس است، در حالی که انجیناکس بر مبنای event کار میکند.
انجیناکس و Lighttpd دو سرور مشهور ناهمخوان (Asynchronous) بهشمار میروند، در حالی که آپاچی بهترین سرور پروسسی است. مزیت استفاده از معماری ناهمخوان، قابلیت بزرگ شدن است. در سرورهای پروسس محور، هر ارتباط همزمان نیاز به نخی (Thread) دارد که باعث سرریز بیش از حد میشود. یک سرور ناهمخوان، رویداد محور است و میتواند درخواستها را در یک یا چند نخ، کنترل و مدیریت کند.
سرورهای پروسس محور معمولا در زمان بار اندک بخوبی میتوانند با سرعت سرورهای ناهمخوان کار کنند، اما وقتی بار سرور زیاد میشود، میزان رم مصرفی آنها زیاد و بازدهیشان به همین اندازه کم میشود. همچنین بازدهی این سرورها روی سختافزارهای ضعیفتر پایین است و مثلا در محیطهایی مانند VPS که منابع محدود در اختیار سیستم قرار دارد، بازدهی خوبی ندارد.
برای مثال، استفاده از ده هزار درخواست همزمان باعث میشود Nginx از چند مگابایت رم استفاده کند، در حالی که آپاچی احتمالا چند صد مگابایت رم مصرف خواهد کرد.
قابلیتها
انجیناکس همانند آپاچی از تمام قابلیتهای یک سرور وب پشتیبانی میکند:
ـ سرویسدهی به فایلهای استاتیک
ـ پشتیبانی از SSL/TLS
ـ میزبانهای مجازی (Virtual Hosts)
ـ پروکسی معکوس
ـ بالانس کردن بار سرور
ـ فشردهسازی
ـ سطوح دسترسی
ـ دوباره نوشتن URLها (URL Rewriting)
ـ گزارشگیری مخصوص
ـ افزونههای سمت سرور
ـ WebDAVمحدود
ـ استریم فایلهایFLV
ـ پشتیبانی از FastCGI
انجیناکس نصب و راهاندازی سادهای دارد و تا حد زیادی امن است. هر چند مزیت اصلی استفاده از Nginx نسبت به آپاچی، بازدهی و کارایی بهتر آن است. دریافت بیشترین کارایی از VPS و پیشرفت یک وبسایت با حفظ کارایی از قابلیتهای انجیناکس است.
البته آپاچی نیز نسبت به انجیناکس قابلیتهایی دارد که از میان آنها، میتوان به موارد زیر اشاره کرد:
ـ احراز هویت کوتاه
ـ CGI
ـ کنسول مدیریتی
بازدهی
انجیناکس در ارائه فایلهای استاتیک به درخواستهای موازی، حافظه بسیار کمتری مصرف میکند و دلیل اصلی آن نیز رویدادمحور بودن آن است. این سرور نیازی به ایجاد پروسس یا نخ جدید برای هر درخواست ندارد و بههمین دلیل، استفاده از حافظه بسیار کم خواهد شد.
وردپرس، انجیناکس را به این دلیل پیادهسازی کرد که بتواند 8000 درخواست را در ثانیه بالانس کند.
فرض کنید وبسایتتان روزانه دهها میلیون بازدیدکننده دارد. انجیناکس میتواند پروکسی معکوس این درخواستها را (که برابر با چند صد درخواست در یک ثانیه میشود) روی یک سرور و با حافظه کمتر از 24 مگابایت پاسخ دهد.
اگر همین فشار روی آپاچی وارد شود (بعد از استفاده از هزار پروسس و میزان زیادی رم) آپاچی بازدهی خود را از دست میدهد و بیش از 400 مگابایت رم برای سرویسدهی استفاده و حدود 20 مگابایت در هر ساعت حافظه نشت میکند.
سادگی استفاده
وبسایت Justin.tv (که به استریم زنده ویدئوها میپردازد) دلیل استفاده از انجیناکس خود را این طور بیان کرده است:
قبلا از Pound برای بالانس بار سرور استفاده میکردیم. استفاده از CPU بهطور ثابت حدود 20درصد بود و در زمانهای شلوغی به 80درصد میرسید. وقتی تحت بار ترافیکی بودیم، سرور معمولا از کار میافتاد. پس از اینکه به Nginx آمدیم، سرور حدود 3درصد حافظه مصرف میکرد. بارگذاری صفحهها سریعتر بهنظر میرسید و پیکربندی آن آنقدرساده بود که گمان نمیکردیم تمام کارهای سرور را انجام دهد.
محبوبیت
سال 2009 آپاچی نخستین وبسروری بود که بیش از صد میلیون وبسایت را میزبانی میکرد. از سال 1996 تاکنون، این وب سرور محبوبترین سرور HTTP در وب بوده است. سال 2009، این وبسرور حدود 46درصد کل وبسایتها و 66 درصد وبسایتهای شلوغ را میزبانی کرده است.
سهم بازار آپاچی از اوایل سال 2010 با رشد خوبی مواجه بوده و Nginx نیز از سال 2009 به بعد جایگاه خوبی در بازار برای خود دست و پا کرده است.
مجوزها
انجیناکس تحت مجوز Simplified BSD منتشر شده که نسخه ساده شدهای از مجوز BSD است. این انتخاب باعث شده همکاری میان انجیناکس و پروژههای مشابه که با مجوزهای دیگر منتشر شدهاند، محدود شود.
آپاچی از مجوز آپاچی 2 استفاده میکند که معمولا مجوز آسانگیری قلمداد میشود. البته اصلاح نرمافزار و توزیع مجدد آن با محدودیتهایی مواجه است که شباهتهایی به مجوز Simplified BSD دارد.
محمدرضا قربانی