Ngnix که در سال ۲۰۰۴ منتشر شد، یک نرم افزار وب منبع باز یا open source است که مشکلات بسیاری از افرادی که در دنیای وب مشغول به فعالیت هستند را حل کرد. نرم افزار Ngnix ابتدا تنها برای پروکسی HTTP کار می کرد اما امروزه به دلیل توسعه و پیشرفت این نرم افزار به عنوان پروکسی ایمیل برای POP3، IMAP، SMTP نیز مورد استفاده قرار می گیرد.
نرم افزار Ngnix به وسیله ایگور سیسوف ساخته شده است. ایگور سیسوف پروژه ساخت نرم افزار Ngnix را از سال ۲۰۰۲ آغاز کرد. دلیل ایگور سیسوف برای ساخت چنین نرم افزاری و هدفی که او در سر داشت، حل کردن مشکل C10k بود که بسیاری از افرادی که در دنیای وب در حال فعالیت بودند، درگیر مشکل C10k، شده بودند.
شاید پیش خود فکر کنید که مشکل C10k چیست و دلیل ساخت نرم افزار Ngnix چیست . C10k مشکلی بود که اوایل سال ۲۰۰۰، اکثر فعالان در دنیای وب با آن رو به رو می شدند. C10k چالش مدیریت ده هزار اتصال و ارتباط به طور همزمان است. به زبان ساده، تا قبل از پیدایش و ساخت نرم افزار Ngnix، صاحبان سایت ها و فعالان در دنیای وب، در مدیریت اتصالات بین شبکه ای به طور همزمان، دچار مشکل می شدند و نمی توانستند ده هزار اتصال را به طور همزمان مدیریت کنند. هدف ایجاد Ngnix هم دقیقا حل کردن این مشکل بود.
امروزه دیگر مدیریت ده هزار اتصال به طور همزمان، مسئله مهمی نیست و اتصالات بیشتری وجود داد که سرورهای وب باید از آن ها استفاده کرده و آن ها را پردازش کنند. به همین دلیل چون Ngnix از این ویژگی برخوردار است که می توان با آن، اتصالات بی شماری را همزمان پردازش و کنترل کرد، به یکی از معتبرترین و با کیفیت ترین سرورها که حتی از نظر سرعت هم از قدرت بالایی برخوردار است، تبدیل شده است.
Ngnix به دلیل توانایی فوق العاده و چشم گیر در پردازش ارتباطات و اتصالات به طور همزمان و سرعت بالایی که برای وب سایت ها فراهم می کند، باعث شده است که مورد توجه وب سایت های با ترافیک بالا که دقیقا به چنین ویژگی هایی نیاز دارند، قرار گیرد. Google، Netflix، Adobe، Cloadflare، WordPress.com و بسیاری از وب سایت های دیگر، از جمله این وب سایت های با ترافیک بالا و معروف به شمار می آیند که به دلیل ویژگی های Ngnix، از خدمات Ngnix استفاده می کنند. به همین دلیل اگر مدیریت وب سایتی بر عهده شماست، حتی اگر آن وب سایت ترافیک چندان بالایی ندارد، بهتر است باز هم به طور کامل متوجه شوید که Ngnix چیست و چه خدماتی ارائه می دهد تا اگر در آینده ترافیک وب سایتتان بسیار بالا رفت و به سروری نیاز داشتید که بتواند اتصلات زیادی را پردازش کند و سرعت بارگیری بالایی نیز داشته باشد، از Ngnix استفاده کنید.
نحوه کار Ngnix چیست ؟
برای آن که بهتر با این موضوع که Ngnix چگونه کار می کند و نحوه کار Ngnix چیست ، آشنا شوید، ابتدا بهتر است آشنایی کلی از نحوه کار سرور وب پیدا کنید. به همین خاطر ابتدا نحوه کار سرور وب را توضیح می دهیم. هنگامی که شخصی می خواهد صفحه ای از وب را باز کند، مرورگر با سرور آن وب سایت تماس می گیرد. سپس، سرور به دنبال فایل های درخواست شده برای صفحه، آن را به مرورگر ارسال می کند. این روش درخواستی که توضیح دادیم، ساده ترین و معمولی ترین نوع درخواست است.
به هر درخواستی که از طرف مرورگر برای باز کردن یک صفحه به سرور وب داده می شود، یک رشته واحد می گویند. حال ممکن است پیش خود فکر کنید که تفاوت برخورد سرورهای وب سنتی با این درخواست ها با برخورد سرور Ngnix چیست . سرورهای وب سنتی برای هر درخواست، یک رشته ایجاد می کنند اما روش کار Ngnix این گونه نیست. سرور Ngnix از چندین فرایند که به عنوان «فرایند کارگر» شناخته می شوند، تشکیل شده است. هر فرایند کارگر دارای واحد های کوچکتری به نام اتصالات کارگر است. درخواست های مشابه یا همان رشته های مشابه در Ngnix تحت یک فرایند کارگر مدیریت می شوند. سپس اتصالات کارگر، درخواست ها را به یک فرایند کارگر می رسانند که به درخواست اصلی نیز ارسال می شود. در نهایت، فرایند اصلی نتیجه آن درخواست ها را ارائه می دهد.
شاید به نظرتان روش کار Ngnix ساده و آسان باشد اما به این نکته توجه کنید که یک اتصال کارگر که مسئولیت ارسال درخواست ها به فرایند کارگر را بر عهده دارد، می تواند تا ۱۰۲۴ درخواست مشابه را پردازش کند. به همین دلیل Ngnix می تواند هزاران درخواست را بدون آن که هیچ مشکلی به وجود آید، پردازش و مدیریت کند. در نتیجه همین روش است که وب سایت هایی که ترافیک بالایی دارند و به سرورهایی که می توانند هزاران درخواست و اتصال را پردازش کنند و سرعت بالایی هم دارند، نیازمندند از Ngnix استفاده می کنند.
تفاوت سرور وب Apache با سرور وب Ngnix چیست ؟
انتخاب سرور وب مناسب برای وب سایتتان، تصمیمی مهم و حیاتی است. چون سرور وب در پردازش درخواست ها و سرعت بارگیری وب سایتتان تاثیر گذار است، بهتر است قبل از انتخاب یک سرور وب برای وب سایتتان، تحقیقات کامل را انجام دهید.
همانطور که در این مقاله به مراتب اشاره کردیم، سرور وب Ngnix گزینه مناسبی برای هر وب سایتی محسوب می شود. اما ممکن است سرور وب Apache نیز به گوشتان خورده باشد. Apache یکی از رقبای اصلی Ngnix به شمار می آید که قدمت بیشتری نسبت به Ngnix داشته و از دهه ۹۰ وجود داشته است. تعداد کاربران Apache نیز به دلیل سابقه زیاد و کیفیت بالایی که ارائه می دهد، زیاد است. حال ممکن است در تصمیم گیری بین یکی از این دو سرور وب، دچار مشکل شوید. ما در این بخش سعی می کنیم شما را از تفاوت های بین Apache و Ngnix آگاه کنیم.
-
پشتیبانی از سیستم عامل
یکی از مسائلی که در انتخاب سرور وب باید به آن دقت کنید، سازگاری و پشتیبانی از سیستم عامل است. Ngnix و Apache می توانند بر روی بسیاری از سیستم عامل هایی که از سیستم Unix پشتیبانی می کنند، اجرا شوند. اما عملکرد Ngnix در سیستم عامل ویندوز، ضعیف است.
-
پشتیبانی کاربر
یکی از برتری های Ngnix نسبت به Apache، پشتیبانی قوی برای کاربران است.
-
عملکرد
Ngnix در پردازش داده ها و اتصالات قوی تر از Apache عمل می کند و می تواند اتصالات بیشتری را نسبت به Apache پردازش کند. همچنین سرعت پردازش Ngnix دو برابر بیشتر از سرعت پردازش Apache است.