آنچه در این صفحه می خوانید:
- معرفی انجین ایکس (NGINX)
- تاریخچه انجین ایکس (NGINX)
- ویژگی های انجین ایکس (NGINX)
- کاربرد انجین ایکس (NGINX)
- مقایسه انجین ایکس با انجین ایکس پلاس
- مقایسه انجین ایکس با آپاچی
معرفی انجین ایکس (NGINX)
Nginx یک وب سرور است که می تواند به عنوان پروکسی معکوس، متعادل نمودن بار ترافیکی، پروکسی ایمیل و حافظه نهان HTTP نیز مورد استفاده قرار گیرد و به عنوان یک وب سرور جهت حداکثر عملکرد و ثبات طراحی شده است.یک شرکت با همین نام در سال 2011 برای ارائه پشتیبانی و Nginx به علاوه نرم افزار پرداخت شده تأسیس شد. Nginx نرم افزاری رایگان و اوپن سورس است که تحت شرایطی مانند مجوز BSD مانند منتشر شده است. بخش بزرگی از سرورهای وب از NGINX، غالباً به عنوان متعادل کننده بار ترافیکی استفاده می کنند. در مارس 2019، شرکت Nginx توسط F5 Networks با 670 میلیون دلار خریداری شد. از آگوست سال 2019، تخمین زده شده است که Netcraft Nginx 32 درصد از کل وب سایت های فعال رتبه بندی شده را به خود اختصاص داده است و این رتبه نخست را بالاتر از Apache با 29 درصد قرار داده است.
nginx و آپاچی نرم افزارهای وب سرور جایگزین هستند. نرم افزارهای وب سرور در پاسخ به درخواست های مرورگر صفحات وب را ارائه می دهند. علاوه بر قابلیت های سرور HTTP ،NGINX همچنین می تواند به عنوان یک پروکسی سرور برای ایمیل (IMAP ،POP3 و SMTP) و یک پروکسی معکوس و تعادل بار برای HTTP ،TCP و سرورهای UDP عمل کند.
تاریخچه انجین ایکس (NGINX)
Igor Sysoev در اصل NGINX را برای حل مشکل C10K نوشت، یک اصطلاح در سال 1999 برای توصیف مشکلاتی که سرورهای وب موجود در رسیدگی به تعداد زیادی (10K) اتصالات همزمان (C) تجربه کردند. با معماری ناهمزمان مبتنی بر رویداد، NGINX، انقلابی کرد که چگونه سرورها در زمینه های با کارایی بالا کار می کنند و سریعترین وب سرور را در دسترس قرار داد. پس از متن باز شدن NGINX در سال 2004 و استفاده گسترده از آن، شرکت NGINX را به منظور حمایت از توسعه مستمر NGINX و بازاریابی NGINX Plus به عنوان یک محصول تجاری با ویژگی های اضافی طراحی شده برای مشتریان شرکت های سازنده تاسیس شد. امروزه NGINX و NGINX Plus می توانند صدها هزار ارتباط همزمان را اداره کنند و بیش از 50 درصد از شلوغ ترین سایت ها را در وب داشته باشند.
ویژگی های انجین ایکس (NGINX)
هدف NGINX این بود که سریع ترین وب سرور را در اطراف ایجاد کنیم و حفظ این برتری همچنان هدف اصلی پروژه است. NGINX به طور پیوسته آپاچی و دیگر سرورها را در معیارهای ارزیابی عملکرد وب سرور قرار می دهد. از زمان انتشار اولیه NGINX، وب سایت ها از صفحات HTML ساده به محتوای پویا و چند منظوره گسترش یافته اند. NGINX با رشدی که کرده است اکنون تمامی اجزای وب مدرن، از جمله WebSocket، HTTP / 2 و جریان فرمت های ویدیویی متعدد (HDS، HLS، RTMP و دیگران) را پشتیبانی می کند.
امکانات
Nginx می تواند برای ارائه محتوای HTTP پویا در شبکه با استفاده از FastCGI، کنترل کننده های SCGI برای اسکریپت ها، سرورهای برنامه WSGI یا ماژول های Phusion Passenger مستقر شود و می تواند به عنوان یک تعادل بار نرم افزار خدمت کند. Nginx برای رسیدگی به درخواست ها، از رویکردهای ناهنجار محور به جای موضوعات استفاده می کند. معماری واقعه مدولار Nginx می تواند عملکرد قابل پیش بینی تری را در بارهای زیاد ایجاد کند. فایل پیکربندی پیش فرض Nginx nginx.conf است.
پروکسی HTTP و ویژگی های وب سرور
- امکان اداره بیش از 10،000 اتصال همزمان با یک اثر کم حافظه (2.5 مگابایت per برای هر 10k اتصالات زنده نگهدار HTTP غیرفعال)
- رسیدگی به فایل های استاتیک، فایل های فهرست بندی و فهرست بندی خودکار
- معکوس کردن پروکسی با ذخیره
- تعادل بار با بررسی های بهداشتی درون باند
- TLS / SSL با پشتیبانی اصولی SNI و OCSP، از طریق OpenSSL
- پشتیبانی FastCGI ،SCGI ،uWSGI با ذخیره سازی
- پشتیبانی gRPC از مارس 2018، نسخه 1.13.10.
- سرورهای مجازی مبتنی بر نام و IP
- سازگار با IPv6
- اقدام به عنوان یک پروکسی معکوس و متعادل کردن بار برنامه های WebSocket.
- ارتقاء HTTP / 1.1 (پروتکل سوئیچینگ 101)، پشتیبانی پروتکل HTTP / 2
- بازنویسی و تغییر مسیر URL
ویژگی های پروکسی ایمیل
- پشتیبانی TLS / SSL
- پشتیبانی از STARTTLS
- پروکسی SMTP ،POP3 و IMAP
- به احراز هویت با استفاده از یک سرور HTTP خارجی یا توسط یک اسکریپت تأیید احتیاج دارد.
سایر ویژگی ها عبارتند از: به روزرسانی اجرایی و پیکربندی بدون از بین رفتن اتصالات کلاینت و یک معماری مبتنی بر ماژول با پشتیبانی از ماژول اصلی و شخص ثالث. محصول پلاس شامل ویژگی های اضافی مانند تعادل بار پیشرفته و دسترسی به مجموعه گسترده ای از معیارها برای نظارت بر عملکرد است.
کاربرد انجین ایکس (NGINX)
NGINX باعث می شود مانع از بارگذاری سخت افزاری شود. NGINX به عنوان یک نرم افزار load balancer ارزان تر و قابل تنظیم تر از سخت افزار load balancer است و برای معماری های ابری مدرن طراحی شده است. NGINX Plus پشتیبانی از پیکربندی مجدد on-the-fly است و با ابزارهای مدرن DevOps برای نظارت ساده تر ادغام می شود. با NGINX، شما می توانید همان ابزار به عنوان متعادل کننده بار خود، پروکسی معکوس، ذخیره سازی محتوا و سرور وب را استفاده کنید، به حداقل رساندن مقدار ابزار و پیکربندی که سازمان شما نیاز به نگهداری دارد. NGINX آموزش، وبینارها و مجموعه گسترده ای از مستندات را برای شما فراهم می کند. NGINX Plus شامل پشتیبانی سریع از پاسخ مشتری است، بنابراین شما به راحتی می توانید به تشخیص هر بخشی از پشته خود که NGINX یا NGINX Plus را استفاده می کنید تشخیص دهید. NGINX در حال تکامل است. در دهه گذشته، NGINX در خط مقدم توسعه وب مدرن قرار داشته و در همه چیز از HTTP / 2 به پشتیبانی از microservices کمک کرده است. به عنوان توسعه و تحویل اپلیکیشن های وب همچنان در حال تکامل است، NGINX Plus علاوه بر پشتیبانی از تنظیمات جاوا اسکریپت برای NGINX، به پشتیبانی از ماژول های پویا می پردازد. استفاده از NGINX Plus تضمین می کند که شما در لبه برش عملکرد وب باقی بمانید.
مقایسه انجین ایکس با انجین ایکس پلاس
دو نسخه Nginx ،OSS Nginx و Nginx Plus وجود دارد. Nginx Plus ویژگی های دیگری را ارائه نمی دهد که در OSS Nginx وجود ندارد، مانند بررسی های فعال سلامتی، ماندگاری نشست بر اساس کوکی ها، ادغام DNS، سرویس کشف، برنامه Cache Purging API ،AppDynamic ،Datalog، افزونه Dynatrace New Relic ،HA Active-Active با پیکربندی همگام سازی، فروشگاه Key-Value، بروزرسانی خرابی صفر تنظیمات بالادست و فروشگاه های دارای ارزش key با استفاده از Nginx Plus API و فایروال برنامه وب (WAF) ماژول پویا.
مقایسه انجین ایکس با آپاچی
Nginx با یک هدف صریح عملکرد بهتر از سرور وب آپاچی نوشته شده است.در حال ارائه فایل های استاتیک، Nginx از حافظه بسیار کمتری نسبت به آپاچی استفاده می کند و تقریباً چهار برابر بیشتر از درخواست در هر ثانیه مرتفع می شود. با این حال، این افزایش عملکرد با هزینه ای از کاهش انعطاف پذیری، مانند امکان نادیده گرفتن تنظیمات دستیابی به سیستم در هر فایل به دست می آید (آپاچی این کار را با یک پرونده .htaccess انجام می دهد، در حالی که Nginx چنین ویژگی داخلی ندارد).
Nginx همچنین دارای اعتبار بیشتری برای نصب و پیکربندی نسبت به آپاچی است. پیش از این، اضافه کردن ماژول های شخص ثالث به Nginx نیاز به جبران مجدد برنامه از مبدأ با ماژول ها به طور ایستا داشت. این مورد تا حدی در نسخه 1.9.11 در فوریه 2016 با افزودن بارگذاری ماژول پویا بر طرف شد. با این حال، ماژول ها باید همزمان با Nginx کامپایل شوند و همه ماژول ها با این سیستم سازگار نیستند. برخی به فرآیند پیوند استاتیک قدیمی نیاز دارند. به طور کلی Nginx نسبت به لینوکس نسبت به Windows Server از پایداری کمتری برخوردار است، در حالی که Apache برای هر دو پشتیبانی برابر دارد.