وب سرور NGINX و ترکیب آن با وب سرور Apache
وب سرور
وب سرور Nginx با وجود حجم کم اما در عین حال کارایی بسیار بالایی دارد. وب سرور Nginx تحت لایسنس BSD و از سال 2007 در سطح وب به صورت گسترده منتشر شده است.از بزرگترین مزیتهای وب سرور Nginx پشتیبانی بسیار عالی از فایل های استاتیک مانند تصاویر هست.
وب سرور Ngnix در یک نگاه
وب سرور Nginx سرعت پاسخگویی بسیار بالایی دارد و در سایت های پر بازدید بسیار عالی عمل می کند. از جمله قابلیت های وب سرور Nginx سازگاری این وب سرور با اکثر توزیع های لینوکس هست. مستندات Nginx بسیار کامل است و انجمن Nginx هم بسیار پویا می باشد، از این رو همواره در حال به روز رسانی و پیشرفت می باشد.
وب سرور Nginx برای مدیریت در خواست ها یا همان connection ها از روش منحصر به فرد خودش استفاده می کند، البته امروزه این روش در برخی وب سرور های دیگر هم استفاده می شود.
در وب سرور Nginx برای هر درخواست یک Thread انحصاری ایجاد خواد شد. ضمنا سیستم Thread Poll هم به مدیریت و نوبت دهی زمانی Thread ها می پردازد. به این ترتیب مادامی که درخواست جدیدی نیامده است وب سرور درخواست های در نوبت را ارائه می کند. این روش استفاده از Thread ها در وب سرور Nginx بسیار کارامد است. به طور کلی مدیریت باز و بسته شدن Thread ها در وب سرور هایی مثل Apache بزرگترین نقطه ضعف آنها می باشد. ترتیبی عمل کردن در این وب سرور ها باعث می گردد زمان زیادی از دست برود در حالی که سرور امکان پردازش در اون زمان را داشته است اما منتظر رسیدن درخواست بعدی مانده است.
آپدیت ها و به روز رسانی وب سرورها همواره با مشکلاتی همراه است که در خروجی چیزی جز داون تایم برای سرورها و نارضایتی مشتریان را به دنبال ندارد، اما در مورد وب سرور Ngnix به روز رسانی به نسخه جدید تر به صورت On The Fly می باشد و این مورد در پروژه هایی که نباید سایت داون تایم داشته باشد بسیار ارزشمند است.
تفاوت های Apache با Ngnix
در یک تفسیر ساده Apache یک وب سرور Process-Based در حالی که Nginx یک وب سرور Event-Based بهمین دلیل Nginx سریعتر از Apache است. روشن است به این ترتیب به ازای درخواست های HTTP مشابه وب سرور Ngnix حافظه رم کمتری مصرف می کند، از طرفی دیگر Apache نظر به عمر طولانی تر دارای امکانات و قابلیت های بیشتری نسبت به Nginx می باشد. یکی از امتیازات برتری Apache به وب سرور Ngnix همان مدیریت دسترسی به کمک فایل htaccess می باشد که شامل انواع Mod ها جهت Redirect، Rwrite، cache و … می باشد.
وب سرور Ngnix در قیاس با LightSpeed
بر خلاف ادعا شرکت LiteSpeed که وب سرور آن تا 40 برابر سریعتر از Apache و حداقل 20 برابر سریعتر از Ngnix است، تجربه ثابت کرده است با وجود 6 سال سابقه بیشتر به نسبت Ngnix اما هنوز LightSpeed موفق نشده است به جایگاه Ngnix دست پیدا کند و از نظر ظرفیت هر چند شاید در تست ها سریعتر باشد اما در زیر فشار بازدید بالا به هیچ وجه پایداری Ngnix را نداشته و خیلی زود شاهد کاهش توان آن هستیم. مهاجرین LightSpeed به وب سرور Ngnix آنقدر بزرگ و زیاد هستند که خود گویای همه چیز می باشد، ویکی پدیا، فیسبوک به عنوان نمونه ای از وب سایت هایی هستند که همواره جزو 10 سایت پر ترافیک جهان می باشند، و به وب سرور Ngnix اعتماد کرده اند.
ترکیب Ngnix با Apache
بی تردید بسیاری از اسکریپت ها و وب سایت ها، جز با Apache کمی در اجرا با مشکل روبرو هستند، بسیاری از وبمسترها قابلیت هایی که به کمک htaccess نصیبشان می شود را به کمی سریعتر لود شدن تصایر سایتشان می پسندند. از این رو کنار گذاشتن وب سرور Apache در هاست های اشتراکی کاری نادرست می باشد که موجبات نارضایتی و محدودیت در سرویس دهی می شود.
از این رو در طرحی ابتکاری، وب سرور Ngnix نه به جای Apache که در کنار آن می تواند ضمن به همراه آوردن کلیه محاسنش برای هاست های اشتراکی، کلیه قابلیت های Apache را همچنان در اختیار کاربران قرار دهد. این قابلیت در چندین شکل امکان پذیر است که بسته به نیاز میتوان الویت ها را برای وب سرورهای مختلف تعریف داشت، البته تنظیمات نادرست در این حوزه میتواند کاملا بر عکس عمل کرده و سرور را نه تنها کند که در پاره ای موارد دچار مشکل نیز نماید.
کدباکس، در هاست اشتراکی خود از وب سرور Ngnix به عنوان قدرتمندترین وب سرور حاضر، در کنار Apache به عنوان محبوب ترین وب سرور جهان بهره می برد. طبق آزمون ها پس از کانفیگ کامل این ترکیب بر روی هاست اشتراکی ما شاهد حدود 300% افزایش سرعت پاسخدهی سرور به درخواست های همزمان بوده ایم و این یعنی ظرفیت 3 برابری پاسخدهی. در عین حال استفاده کامل از Ngnix برای هندل داده های استاتیک و کش شده سرور نیز با تنظیمات خاص اعمال شد که در نتیجه موجب کاهش 60% منابع مصرفی سرور شده است که روشن است منابع آزاد سرور در رزرو پردازش های سنگین تر می باشد.
در یک نگاه
وب سرور Nginx سرعت پاسخگویی بسیار بالایی دارد و در سایت های پر بازدید بسیار عالی عمل می کند. از جمله قابلیت های وب سرور Nginx سازگاری این وب سرور با اکثر توزیع های لینوکس هست. مستندات Nginx بسیار کامل است و انجمن Nginx هم بسیار پویا می باشد، از این رو همواره در حال به روز رسانی و پیشرفت می باشد.
وب سرور Nginx برای مدیریت در خواست ها یا همان connection ها از روش منحصر به فرد خودش استفاده می کند، البته امروزه این روش در برخی وب سرور های دیگر هم استفاده می شود.
در وب سرور Nginx برای هر درخواست یک Thread انحصاری ایجاد خواد شد. ضمنا سیستم Thread Poll هم به مدیریت و نوبت دهی زمانی Thread ها می پردازد. به این ترتیب مادامی که درخواست جدیدی نیامده است وب سرور درخواست های در نوبت را ارائه می کند. این روش استفاده از Thread ها در وب سرور Nginx بسیار کارامد است. به طور کلی مدیریت باز و بسته شدن Thread ها در وب سرور هایی مثل Apache بزرگترین نقطه ضعف آنها می باشد. ترتیبی عمل کردن در این وب سرور ها باعث می گردد زمان زیادی از دست برود در حالی که سرور امکان پردازش در اون زمان را داشته است اما منتظر رسیدن درخواست بعدی مانده است.
آپدیت ها و به روز رسانی وب سرورها همواره با مشکلاتی همراه است که در خروجی چیزی جز داون تایم برای سرورها و نارضایتی مشتریان را به دنبال ندارد، اما در مورد وب سرور Ngnix به روز رسانی به نسخه جدید تر به صورت On The Fly می باشد و این مورد در پروژه هایی که نباید سایت داون تایم داشته باشد بسیار ارزشمند است.