آیا استفاده از انجین ایکس فواید دیگری دارد ؟

کنترل همزمان بالا با بهره وری تاثیر پذیری بالا فواید مهم به کارگیری انجین ایکس بوده است ولی این سرور وب فواید جالب دیگری نیز دارد .در چند سال گذشته معماری های وب ایده تجزیه و جداسازی زیر ساخت نرم افزاری شان از سرور وب را پیش گرفته اند همانند آنچه قبلا در وب سایت های مبتنی بر linuxوجود داشت .انجین ایکس برای وب سرور بسیار مناسب است چرا که قابلیت کلیدی مورد نیاز برای کنترل همزمانی پردازش تاخیر ssl لایه امن سوکت ها محتوای ایستا فشرده سازی و ذخیره در حافظه نهان از بین بردن اتصال و درخواست های غیر ضروری و حتی جریان HTTP رسانه از لایه کاربردی به لایه موثر سرور وب اراعه می کند . همچنین امکان یکپارچه سازی مستقیم با راه حل های بدون SQL را برای بالا بردن کارایی هنگام اراعه سرویس به تعداد زیادی از کاربران همزمان فراهم می سازد.با وجود کیت ها و زبان های برنامه نویسی جدید توسعه شرکت ها بیشتری اقدام به تغییر نحوه توسعه و به کارگیری برنامه های کاربردی خود کردند و انجین ایکس به یکی از اصلیترین اجزای این تغییرات تبدیل شد که توانست به بسیاری از شرکت ها در جهت توسعه سرویس های وب شان کمک کند .

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

اساس کد انجین ایکس مختص به خودش است که به صورت کامل و از ابتدا به زبان برنامه نویسی c نوشته شده است .

انجین ایکس به بسیاری از معماری های و سیستم هامل ها مانند لینوکس و ویندوز و … نفوذ کرده است این سرور وب با داشتن کتاب خانه های خود از ماژول های استاندارد کتاب خانه ای c استفاده زیادی نمی کند .توجه داشته باشید در نسخه ویندوزی این سیستم بیشتر نمایشی می باشد و کامل نمی توانید قابلیت Nginx رو بفهمید.

وب سرور Nginx با وجود حجم کم اما در عین حال کارایی بسیار بالایی دارد. وب سرور Nginx تحت لایسنس BSD و از سال ۲۰۰۷ در سطح وب به صورت گسترده منتشر شده است.از بزرگترین مزیتهای وب سرور Nginx پشتیبانی بسیار عالی از فایل های استاتیک مانند تصاویر هست.وب سرور Nginx سرعت پاسخگویی بسیار بالایی دارد و در سایت های پر بازدید بسیار عالی عمل می کند.

از جمله قابلیت های وب سرور Nginx سازگاری این وب سرور با اکثر توزیع های لینوکس هست. مستندات Nginx بسیار کامل است و انجمن Nginx هم بسیار پویا می باشد، از این رو همواره در حال به روز رسانی و پیشرفت می باشد.

وب سرور Nginx برای مدیریت در خواست ها یا همان connection ها از روش منحصر به فرد خودش استفاده می کند، البته امروزه این روش در برخی وب سرور های دیگر هم استفاده می شود.در وب سرور Nginx برای هر درخواست یک Thread انحصاری ایجاد خواد شد. ضمنا سیستم Thread Poll هم به مدیریت و نوبت دهی زمانی Thread ها می پردازد. به این ترتیب مادامی که درخواست جدیدی نیامده است وب سرور درخواست های در نوبت را ارائه می کند. این روش استفاده از Thread ها در وب سرور Nginx بسیار کارامد است.

به طور کلی مدیریت باز و بسته شدن Thread ها در وب سرور هایی مثل Apache بزرگترین نقطه ضعف آنها می باشد. ترتیبی عمل کردن در این وب سرور ها باعث می گردد زمان زیادی از دست برود در حالی که سرور امکان پردازش در اون زمان را داشته است اما منتظر رسیدن درخواست بعدی مانده است.آپدیت ها و به روز رسانی وب سرورها همواره با مشکلاتی همراه است که در خروجی چیزی جز داون تایم برای سرورها و نارضایتی مشتریان را به دنبال ندارد، اما در مورد وب سرور Ngnix به روز رسانی به نسخه جدید تر به صورت On The Fly می باشد و این مورد در پروژه هایی که نباید سایت داون تایم داشته باشد بسیار ارزشمند است.

در یک تفسیر ساده Apache یک وب سرور Process-Based در حالی که Nginx یک وب سرور Event-Based بهمین دلیل Nginx سریعتر از Apache است. روشن است به این ترتیب به ازای درخواست های HTTP مشابه وب سرور Ngnix حافظه رم کمتری مصرف می کند، از طرفی دیگر Apache نظر به عمر طولانی تر دارای امکانات و قابلیت های بیشتری نسبت به Nginx می باشد. یکی از امتیازات برتری Apache به وب سرور Ngnix همان مدیریت دسترسی به کمک فایل htaccess می باشد که شامل انواع Mod ها جهت Redirect، Rwrite، cache و … می باشد.

بر خلاف ادعا شرکت LiteSpeed که وب سرور آن تا ۴۰ برابر سریعتر از Apache و حداقل ۲۰ برابر سریعتر از Ngnix است، تجربه ثابت کرده است با وجود ۶ سال سابقه بیشتر به نسبت Ngnix اما هنوز LightSpeed موفق نشده است به جایگاه Ngnix دست پیدا کند و از نظر ظرفیت هر چند شاید در تست ها سریعتر باشد اما در زیر فشار بازدید بالا به هیچ وجه پایداری Ngnix را نداشته و خیلی زود شاهد کاهش توان آن هستیم. مهاجرین LightSpeed به وب سرور Ngnix آنقدر بزرگ و زیاد هستند که خود گویای همه چیز می باشد، ویکی پدیا، فیسبوک به عنوان نمونه ای از وب سایت هایی هستند که همواره جزو ۱۰ سایت پر ترافیک جهان می باشند، و به وب سرور Ngnix اعتماد کرده اند.

بی تردید بسیاری از اسکریپت ها و وب سایت ها، جز با Apache کمی در اجرا با مشکل روبرو هستند، بسیاری از وبمسترها قابلیت هایی که به کمک htaccess نصیبشان می شود را به کمی سریعتر لود شدن تصایر سایتشان می پسندند.

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

طبق آزمون ها پس از کانفیگ کامل این ترکیب بر روی هاست اشتراکی ما شاهد حدود ۳۰۰% افزایش سرعت پاسخدهی سرور به درخواست های همزمان بوده ایم و این یعنی ظرفیت ۳ برابری پاسخدهی. در عین حال استفاده کامل از Ngnix برای هندل داده های استاتیک و کش شده سرور نیز با تنظیمات خاص اعمال شد که در نتیجه موجب کاهش ۶۰% منابع مصرفی سرور شده است که روشن است منابع آزاد سرور در رزرو پردازش های سنگین تر می باشد.

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

در وب سرور Nginx برای هر درخواست یک Thread انحصاری ایجاد خواد شد. ضمنا سیستم Thread Poll هم به مدیریت و نوبت دهی زمانی Thread ها می پردازد. به این ترتیب مادامی که درخواست جدیدی نیامده است وب سرور درخواست های در نوبت را ارائه می کند. این روش استفاده از Thread ها در وب سرور Nginx بسیار کارامد است.

به طور کلی مدیریت باز و بسته شدن Thread ها در وب سرور هایی مثل Apache بزرگترین نقطه ضعف آنها می باشد. ترتیبی عمل کردن در این وب سرور ها باعث می گردد زمان زیادی از دست برود در حالی که سرور امکان پردازش در اون زمان را داشته است اما منتظر رسیدن درخواست بعدی مانده است.آپدیت ها و به روز رسانی وب سرورها همواره با مشکلاتی همراه است که در خروجی چیزی جز داون تایم برای سرورها و نارضایتی مشتریان را به دنبال ندارد، اما در مورد وب سرور Ngnix به روز رسانی به نسخه جدید تر به صورت On The Fly می باشد و این مورد در پروژه هایی که نباید سایت داون تایم داشته باشد بسیار ارزشمند است.