۱۴۰۳-۰۹-۱۳

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

NGINX (انجین ایکس engine-x) در واقع وب سروری متن باز و رایگان است. NGINX در سال ۲۰۰۲ و توسط شخصی روس با نام Igor Sysoev پیاده سازی شد و در سال ۲۰۰۴ برای نخستین بار منتشر گردید و هم اکنون در حدود ۲۸.۳% از تمامی دامنه های فعال را میزبانی می کند. NGINX به عنوان متعادل کننده بارگزاری یا load balancer، وب سرور و HTTP cache معروف است. پروژه NGINX از همان ابتدای شکل گیری بر روی کارایی و performance بالا، و استفاده کمتر و بهینه شده از رم کار نمود. ان جین ایکس بر روی سیستم عامل های مختلفی از جمله Linux, OS X, Solaris, AIX, HP-UX و انواع BSD اجرا میشود.

اساس توسعه NGINX را میتوان برای خدمت رسانی به محتوای صفحات پویای HTTP بر روی شبکه از طریق FastCGI, SCGI برای اسکریپت ها و سرویس دهنده های نرم افزار WSGI یا ماژول های Phusion و همچنین استفاده به عنوان load balancer معرفی نمود. از موارد مفید این سرور می توان کمترین حد استفاده از حافظه و همچنین کارایی همزمان و بالای آن را نام برد. از وب سرورNGINX میتوان به عنوان پروکسی معکوس با وب سرور Apache استفاده کرد تا همزمان از قدرت آپاچی و سرعت انجین ایکس استفاده کند.

از دلایل معروف بودن NGINX می توان کارایی بالای آن، پایدار بودن، دارا بودن ویژگی های مفید و در آخر استفاده پایین از منابع را نام برد. یکی از مشکلات بارز  وب سرور آپاچی، محدود بودن کانکشن ها هم زمان ۱۰۰۰۰ عددی است و این که مصرف حافظه بسیار زیاد دارد. وب سرور NGINX این مشکل را حل نموده است و انتشار آن بر مبنی لایسنس BSD است.

.ب سرور nginx

تاریخچه وب سرور NGINX

توسعه وب سرور NGINX توسط Igor Sysoev در سال ۲۰۰۲ اغاز گردید. در جولای سال ۲۰۱۱ به نام NGINX, Inc در سان فرانسیسکو، کالیفرنیا تغییر رویه داد. این شرکت در واقع یک کمپانی information technology میباشد که نرم افزار های وب سرور را تولید و ارائه میدهد. بر اساس بررسی های Netcraft در اگوست سال ۲۰۱۴، NGINX به عنوان دومین وب سرور پرطرفدار در سایت های فعال شناخته شد.

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

با توجه به اینکه در حال حاضر بر روی سرویس های هاست اشتراکی سرور پارس این وب سرویس ارائه نمی شود میتوانید جهت استفاده از این وب سرور از آموزشهای ارائه شده استفاده و پس از تهیه سرور مجازی ( وی پی اس ) و یا سرور اختصاصی نسبت به نسب و راه اندازی این وب سرور اقدام کنید.

asynchronous event-driven چیست؟

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

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

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

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

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

امکانات وب سرور NGINX

از برخی از ویژگی ها و قابلیت های NGINX میتوان به موارد زیر اشاره نمود:

  • پشتیبانی و مدیریت بیش از ۱۰,۰۰۰ اتصال همزمان با مصرف رم بسیار پایین
  • Load balancing
  • Fault tolerance
  • پشتیبانی از OCSP  با OpenSSL
  • پشتیبانی از FastCGI, SCGI, uWSGI به همراه caching
  • سازگار با IPv6
  • پشتبانی از پروتکل SPDY
  • فشرده سازی و اکسترکت gzip
  • باز نویسی URL یا URL rewriting
  • Bandwidth throttling
  • پردازش داده های XSLT
  • پشتیبانی از TLS/SSL
  • پشتیبانی از STARTTL ها
  • احراز هویت با استفاده از سرور HTTP خارجی

خصوصیات دیگر وب سرور NGINX

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

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

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

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

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