NGINX چیست

NGINX چیست ؟

وب سرور nginx چیست
وب سرور nginx چیست

NGINX (به عنوان NGIN-X تلفظ) یک منبع باز، سبک وزن، کارآمد وب سرور یا سرور پروکسی است.

Nginx به عنوان پروکسی معکوس برای پروتکل های HTTP، HTTPS، SMTP، IMAP، POP3 استفاده می شود،

از سوی دیگر، همچنین برای سرور توازن بارگذاری و HTTP Cache استفاده می شود.

Nginx تسریع در تحویل محتوا و برنامه ها، امنیت را بهبود می بخشد،

در دسترس بودن و مقیاس پذیری را برای شلوغ ترین وب سایت ها در اینترنت تسهیل می کند.

در حالت آسان، Nginx فقط یک نوع نرم افزاری است که در سرورهای وب برای خدمت درخواست های همزمان استفاده می شود.

قبلا ما Apache را در سرورهای وب برای اجرای این توابع استفاده کردیم؛

اما همانطور که جهان در حال رشد است و تقاضای چیزهای بیشتری را در یک زمان، همزمان شدن اصطلاح به تصویر می رسد

و Nginx برای همین کار را راه اندازی می کند.

چرا آپاچی آهسته است؟

وب سرور nginx چیست
وب سرور nginx چیست

چگونه Nginx در عمل اقدام کرد؟

Apache معرفی شده در سال 1995؛ زمانی که هیچ چند وظیفه مفهومی وجود نداشت.

بعدها زمانی که نیاز به چند وظیفه ای مورد نیاز بود، MPM (ماژول چند پردازشی) در Apache برای غلبه بر این موضوع اضافه شد.

اما با استفاده از این قابلیت جدید حافظه با سالهای آتی شروع به افزایش می کند؛

جایی که سایت های غول پیکر مانند گوگل و فیس بوک هر روز میلیون ها بازدید می کنند.

بنابراین نیاز به پلت فرم جدید یا تغییر در آپاچی مورد نیاز بود.

این موضوع به عنوان مشکل C10K (همزمان 10 هزار) نامگذاری شده است.

سپس ایگور سیسوف شروع به توسعه Nginx در سال 2002 برای غلبه بر همان مسئله کرد

و اولین بار Nginx در سال 2004 منتشر شد.

 

در حال حاضر (در سال 2014) Nginx میزبان تقریبا بیش از 12٪ (22+ میلیون) سایت های فعال در تمام دامنه ها است.

چگونه Nginx کار می کند؟

وب سرور nginx چیست
وب سرور nginx چیست

Nginx به دنبال روند مبتنی بر رویداد است؛

این موضوع هر درخواستی را برای هر فرایندی مانند Apache ایجاد نمی کند،

اما هوشمندانه به وقایع یک فرآیند پی می برد.

در زیر تظاهرات یک سرور Nginx در حال انجام درخواست های فایل MP3 و MP4 همزمان است.

Nginx کار خود را به Worker Connections و Worker Process تقسیم کرد.

در اینجا اتصال کارگر مدیریت درخواست ایجاد شده و پاسخ دریافت شده توسط کاربران در وب سرور؛

در همان زمان این درخواست ها به فرآیند پدر و مادرشان منتقل می شود که فرآیند کارگری است.

اتصال یک کارگر (در نمودار Diagram: Worker Connections) می تواند در حدود 1024 ارتباط را در یک زمان اداره کند.

این بزرگترین توانایی اتصال کارگر است.

تعداد N پردازنده کارگر در Nginx بر اساس نوع سرور شما وجود دارد

و هر پردازشگر کارهای مختلف را انجام می دهد تا بتواند تعداد بیشتری از درخواست های همزمان را اداره کند.

در نهایت، فرآیند کارگر درخواستها را به فرایند کارشناسی Nginx ارسال می کند

که به سرعت به درخواست های منحصر به فرد پاسخ می دهد.

 

Nginx ناهمزمان است این بدان معنی است که هر درخواست در Nginx می تواند

همزمان بدون مسدود کردن یکدیگر مانند یک لوله آب اجرا شود.

بنابراین این راه Nginx منابع عملا مشترک را افزایش می دهد بدون اختصاص و مسدود شدن به یک اتصال.

به همین دلیل است که Nginx قادر به انجام همان کار با کمترین میزان حافظه است

و با استفاده از آن حافظه بهینه سازی شده است.