آشنایی با قابليت هاي Nginx

Nginx که به صورت انجين ايکس با engine x خوانده مي شود يک سرور منبع باز وب است که از سوي يک مهندس نرم افزار روس نوشته شد .از زمان آغاز به کار آن در سال 2004 اين سرور وب روي بهره وري بالا همزماني بالا و همچنين استفاده کمتر از حافظه تمرکز داشت . قابليت هاي بيشتر که روي کار کرد آن تاثير مي گذاشت مانند توازن در بارگذاري حافظه نهان کنترل دسترسي پهناي باند و قابليت يک پارچه سازي موثر با برنامه هاي کاربردي فراوان از انجين ايکس يک گزينه خوب براي معماران وب سايت هاي نوين ساخت. اکنون اين سرور وب در جايگاه دوم محبوبترين سرور هاي منبع باز وب اينترنت قرار داد .آشنایی با قابليت هاي Nginx

چرا همزماني بالا اهميت دارد ؟

اين روز هاي اينترنت آنقدر گسترش يافته که در دهه گذشته پيشبيني آن غير ممکن بود . تحولي عظيم از HTML هاي ساده که متن هاي قابل کليک را مي ساختن و بر پايه NCSA و روي سرور هاي وب آپاچي بودند تا ميانگير هاي ارتباطي که همواره برابر هستند و از سوي پيش از دوميليارد کهبر در سرار جهان مورد استفاده قرار مي گيرند.
با افزايش تعداد کامپيوترها دستگاه هاي موبايل تپلت خايي که همواره متصل هستند چشم انداز اينترنت پرسرعت در حال تغيير هست .اطلاعات سرويس هاي آنلاين بسيار زياد شده .بنابر اين وب سايت ها بيشتر از قبل شايد قابل مقايسه هم نباشد پيچيده تر شده است .
همواره يکي از بزرگترين چاليش هاي يک معمار وب سايت همزماني درخواست ها بوده است که از ابتداي به وجود آمدن سرويس ها وب تعداد درخواست هاي همزمان در حال رشد است . براي يک وب سايت محبوب اصلا غير معمول نيست که 100 هزار يا مليون ها نفر را به صورت همزمان پشتيباني و سرويس دهي کند.
ترکيبي از کاربران موبايل و معماري هاي جديدتر برنامه هاي کاربردي که معمولا برپايه نگاه داشتن ارتباط پايدار هستند و به کاربر اجازه مي دهند با اخبار و اطلاعاتي که از طريق دوستان هستند و به کاربران اجازه مي دهند با اخبار و اطلاعاتي که از طريق دوستان خود دريافت مي کنند به روز شوند عامل مهم ديگري که به افزايش همزماني کمک مي کند تغيير رفتار مرورگر هاي نوين است اين گونه مرورگر ها براي بالابردن سرعت بارگذاري چهار يا شش اتصال همزمان را يک وب سايت برقرار مي کنند .
براي نشان دادن مشکلي که براي ارتباط با اتصال هاي کند وجود مي آيد يک وب سرور مبتني بر آپاچي در نظر بگيريد که پاسخ مسبتا کوتاه صد کليوبايتي تا درست مي کند.
بارگذاري اين صفحه مي تواند ظرف کسري از ثانيه انجام شود اما براي کاربري با پهناي باند 80kbps بارگذاري اين صفحه ده ثانيه طول خواد کشيد . پس اين سرور وب با سرعت نسبتا زيادي مي تواند صد کيلوبايت محتوا را گرفته , سپس براي ده ثانيه به کندي به آن محتوا را قبل از آزاد سازي اتصال به کاربران بفرستند. حال تصوير کنيد شما هزار کاربر داريد که به طور همزمان متصل هستند و محتوا يک ساني را خواست کرده اند اگر تنها يک مگابايل حافظه اضافه براي هر کاربر تخصيص يابد تقريبا يک گيگابايت حافظه براي ارائه سرويس به تنها هزار کاربر با درخواست صد کليلوبايل محتوا نياز است . يک سرور وب معمولي که بر پايه آپاچي باشد بايد بيش از يک مگابايت حافظه اضافه براي هر اتصال تخصيص دهد اگر چه شرايط ارسال محتوا براي يک اتصال کند . مي تواند وسيله افزايش اندازه بافر هاي سوکن کرنل سيستم عامل بهبود يابد ولي اين کار يک راه حل کلي نيست مي تواند اثرات جانبي زيادي در پيش داشته باشد .
با وجود اتصال هاي مداوم پايدار مشکل کنترل همزماني پيش از پيش نمايان مي شود زيرا براي جلوگيري از تاخير به وجود آمده به علت سازماندهي اتصال جديد HTTP ارتباط کاربران نبايد قطع شود براي هر کاربر متصل ميزان خاصي از حافظه وسيله سرور وب تخصيص پيدا مي کند .در نتيجه براي کنترل حجم کاري افزوده شده مرتبط با افزايش مخاطبان و افزايش تعداد کاربران همزمان يک وب سايت بايد بر پايه تعدادي از بلاک هاي موثر بايد در چند بخش هاي ديگر مانند سخت افزار ظرفيت شبکه نرم افزار و معماري ذخيره داده ها نيز مهم هستند اما نرم افزار وب سرور است که اتصال هاي کاربران را تاييد و پردازش مي کند بنابر اين سرور وب بايد بتواند به صورت غير خطي و بر اساس افزايش تعداد درخواست ها در هر ثانيه و اتصال هاي همزمان تغيير کند .

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

کنترل همزمان بالا با بهره وري تاثير پذيري بالا فوايد مهم به کارگيري انجين ايکس بوده است ولي اين سرور وب فوايد جالب ديگري نيز دارد .
در چند سال گذشته معماري هاي وب ايده تجزيه و جداسازي زير ساخت نرم افزاري شان از سرور وب را پيش گرفته اند همانند آنچه قبلا در وب سايت هاي مبتني بر linux وجود داشت
انجين ايکس براي وب سرور بسيار مناسب است چرا که قابليت کليدي مورد نياز براي کنترل همزماني پردازش تاخير ssl لايه امن سوکت ها محتواي ايستا فشرده سازي و ذخيره در حافظه نهان از بين بردن اتصال و درخواست هاي غير ضروري و حتي جريان HTTP رسانه از لايه کاربردي به لايه موثر سرور وب ارائه مي کند . همچنين امکان يکپارچه سازي مستقيم با راه حل هاي بدون SQL را براي بالا بردن کارايي هنگام ارائه سرويس به تعداد زيادي از کاربران همزمان فراهم مي سازد.
با وجود کيت ها و زبان هاي برنامه نويسي جديد توسعه شرکت ها بيشتري اقدام به تغيير نحوه توسعه و به کارگيري برنامه هاي کاربردي خود کردند و انجين ايکس به يکي از اصلي ترين اجزاي اين تغييرات تبديل شد که توانست به بسياري از شرکت ها در جهت توسعه سرويس هاي وب شان کمک کند .
اولين خط هاي انجين ايکس در سال 2002 نوشته شد و سال 2004 به عرضه عمومي رسيد تعداد کاربران انجين ايکس در حال افزايش است که اين مساله باعث افزايش ايده هاي مشارکتي خطاهاي گزارش شده پيشنهاد ها و نظرات هاي شده است .
اساس کد انجين ايکس مختص به خودش است که به صورت کامل و از ابتدا به زبان برنامه نويسي c نوشته شده است . انجين ايکس به بسياري از معماري هاي و سيستم عامل ها مانند لينوکس و ويندوز و … نفوذ کرده است اين سرور وب با داشتن کتاب خانه هاي خود از ماژول هاي استاندارد کتاب خانه اي c استفاده زيادي نمي کند .

توجه داشته باشيد در نسخه ويندوزي اين سيستم بيشتر نمايشي مي باشد و کامل نمي توانيد قابليت Nginx رو بفهميد.

آشنایی با قابليت هاي Nginx

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

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

2 × 5 =