وب سرور Nginx چیست؟

وب سرور Nginx چیست؟

وب سرور Nginx چیست؟

وب سرور Nginx چیست؟

 web server چیست؟به طور کلی هر چیز ( نرم افزاری یا سخت افزاری ) که داده ای را از طریق اینترنت یا شبکه به کاربر منتقل کند web server نامیده می شود.

nginx نامweb server/reverse proxy ی سبکی است که در سال ۲۰۰۲ به علت مشکل تعداد درخواست زیاد در سایت روسی http://www.rambler.ru شکل گرفت و در سال ۲۰۰۴ اولین نسخه رسمی خود را انتشار داد. تا کنون این وب سرور 11.28%. از سهم تمام وب سرور های دنیا را در دست دارد.این وب سرور که هر روز جمع بیشتری از آن استفاده می کنند WordPress.com را لیست استفاده کننده گان خود دارد.

از نکات مهم این وب سرور این است که بر روی سیستم عامل های windows linux Bsd و osx به راحتی نصب می شود

در این سیستم استفاده از روش  asynchronous event-driven  است که باعث شده که به میزان استفاده ثابت از RAM برسیم.
asynchronous event-driven چیست؟

وب سرور ها به طریق مختلفی اقدام به مدیریت درخواست ها  (connection ) می کنند.

  •     برای هر درخواست یک process جدید درست می کنند
  •     برای هر درخواست یک process جدید درست می کنند در حالی که سیستم connection poll هم دارند که تا مدتی process ها را نگه می دارد و در صورتی که در آن زمان درخواست جدیدی بیاید از process های بیکار استفاده می کنند
  •     برای هر درخواست یک thread جدید درست می کنند
  •     برای هر درخواست یک thread جدید درست می کنند در حالی که سیستم thread poll هم دارند که تا مدتی thread ها را نگه می دارد و در صورتی که در آن زمان درخواست جدیدی بیاید از thread های بیکار استفاده می کنند
  •     یک process همه event ها را مدیریت می کند. (قبول درخواست، پاسخ به کاربر، خواندن داده و … )
  •     ترکیبات روش ها

Nginx از روش چهارم استفاده می کند به همراه ساخت process برای مجموعه از event ها … البته مقداری مشخص را در config مشخص می کند. همه این ها برای این است که بیشترین استفاده را از سیستم خود بکنیم.

به طور کلی باز کردن process و thread هزینه بر است و از آن مهمتر مدیریت اینهاست. وب سرورهایی شبیه Apache که  process و thread هستند با درخواست های زیاد به شدت درگیر مدیریت  process و thread می شوند که در نتیجه فشار زیاد تری به سرور می آورند

http://www.devside.net/articles/apache-performance-tuning
The more RAM your system has, the more processes [and threads] Apache can allocate and use; which directly translates into the amount of concurrent requests/clients Apache can serve.

ارتباط مستقیمی بین RAM و درخواست ها در این وب سرور ها وجود دارد که در روش nginx تا جای ممکن از استفاده ی اضافه آن جلوگیری شده است.

توضیح دیگری را دیدم که جالب به نظر می رسید.#

فکر کنید که وب سرور یک پیتزا فروشیست که باید سفارش ها را از طریق تلفن دریافت کند. در روش process و thread فروشگاه کارمند استخدام می کند (process و thread) که هرکدامشان یک خط تلفن دارند و هر کدام سفارش را از طریق تلفن می گیرند و صبر می کنند تا پیتزا حاضر شود تا به مشتری بگویند ( هنوز تلفن قطع نشده) پیتزای شما حاضر است.

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

nginx چه کارهایی بلد است؟

nginx علاوه بر این که یک وب سرور است  reverse proxy و e-mail (IMAP/POP3) proxy هم هست … علاوه بر درخواست های http در خواست های مربوط به IMAP و POP3 هم می تواند از امکانات nginx استفاده کند. در این روش شما می توانید از روش ها loadbalancing و چیزهایی از این قبیل برای ایمیل استفاده کنید. البته شما می توانید حتی کارهای عجیب غریبی مثل authentication mail را هم از طریق nginx انجام دهید.

وب سرور Nginx چیست؟

reverse proxy درخواست های بیرونی را به صورت صف شده و جاهای مختلف می فرستد

  •     reverse proxy ها موجودی سرور های شما را مخفی می کنند و همه ی دنیا شما را از دریچه reverse proxy می بینند.
  •     تمام درخواست ها از reverse proxy می گذرد پس جای مناسبی برای firewall ها و … است
  •     reverse proxy درخواست ها به صورت گسترده ای می تواند پخش کند.
  •     reverse proxy فشار را با cache کردن محتوای صفحات ثابت می تواند کم کند
  •     reverse proxy با فشرده سازی محتوای خروجی سرور ها می تواند زمان درخواست ها را کم کرده و پاسخ به درخواست ها را سریع تر کند.
  •     درخواست ها بین سرور reverse proxy و سرور اصلی به سرعت انجام می شود و connection در reverse proxy باز می ماند و سرور اصلی در گیر نمی شود. ( روش SpoonFeeding )

همانطور که دقت می کنید با اینکه Concurrency برابر ۱۰ بود زمان connection زمانی معادل ۰ داشته

از طرفی هم نمودار های دیگری نیز وجود دارد که استفاده از آنها خالی از لطف نیست.

 

وب سرور Nginx چیست؟

در مجموع نصب کردن و کار کردن به این وب سرور کار راحتی است و با رشدی که دارد پیش بینی می کنم در آینده درصد بیشتری از سهم وب سرور ها را به خود اختصاص دهد.

این مطالب رو هم پیشنهاد می‌کنیم ببینید

درباره نویسنده: سیده منیره خاکساری

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

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

فروش هاست با ssl رایگان فروش ویژه هاست نوروز98| هاست 98