انجیناکس
اِنجیناِکس (به انگلیسی: nginx) یک کارساز وب با حجم پایین و کارایی بالا است که تحت مجوز بیاسدی منتشر میشود. این کارساز وب در یونیکس، گنو/لینوکس، بیاسدی، مک او اس و ویندوز اجرا میشود. بر طبق گفتهٔ نتکرافت، در حال حاضر ۱۲٫۰۷٪ از دامنههای اینترنت از این کارساز استفاده میکنند.
نویسنده(های) اصلی | .Igor Sysoev |
---|---|
توسعهدهنده(ها) | .Nginx, Inc |
انتشار ابتدایی | ۴ اکتبر ۲۰۰۴[2] |
انتشار پایدار | |
انتشار آزمایشی | |
مخزن | |
نوشتهشده با | سی (زبان برنامهنویسی)[3] |
سیستمعامل | شبه-یونیکس،
ویندوز، آیبیام ایآیاکس، لینوکس، مکاواس، سولاریس، اچپی-یواکس |
بنسازه رایانش | چند سکویی[4] |
گونه | وب سرور، پراکسی سرورایمیل |
پروانه | پروانه بیاسدی[5] |
وبگاه |
این پروژه در سال ۲۰۰۱ بنیان نهاده شد و توسط یک توسعهدهنده مستقل به نام ایگور سیسووف (به انگلیسی: Igor Sysoev) به مرحله اجرا درآمد تا در یکی از وبسایتهای پرترافیک به نام رامبرلر به خدمت گرفته شود که این وبسایت در تاریخ سپتامبر ۲۰۰۸، روزانه بیش از ۵۰۰ میلیون درخواست HTTP داشتهاست. در حال حاضر وبسایتهای سرشناسی همچون فیسبوک، نتفلیکس، وردپرس، سورسفورج و … از انجیناکس استفاده میکنند.[6] در نسخه ۵٫۲ اوپنبیاسدی که در نوامبر ۲۰۱۲ عرضه شد هم نرمافزار انجیناکس به صورت پیشفرض در سیستم قرار داده شد تا جایگزینی باشد برای آپاچی ۱٫۳. در نهایت در سال ۲۰۱۴ آپاچی از درخت کد منبع اوپنبیاسدی حذف شد.[7][8]
محبوبیت
برطبق نظرسنجی نوامبر سال ۲۰۱۶ سایت نتکرافت، انجیناکس به عنوان دومین وبسرور پرکاربرد در تمامی وبسایتهای فعال[9]و همچنین در بزرگترین وبسایتهایی که ترافیک آنها میلیونی است شناخته شد و همچنین، بر اساس آمار سایت «W3Techs»، انجیناکس در ۳۷٫۷ درصد از ۱ میلیون وبسایت برتر، ۴۹٫۷ درصد از ۱۰۰هزار وبسایت برتر و ۵۷ درصد از ۱۰ هزار وبسایت برتر استفاده شدهاست.[10] نظرسنجی سال ۲۰۱۸ داکر نیز نشان میدهد که، وبسرور انجیناکس یکی از پراستفادهترین فناوریهای استفاده شده بر بستر داکرکانتینر است.[11]
به عنوان نمونه، ویکیپدیا نیز از انجیناکس به عنوان یک «TLS termination proxy» استفاده میکند.[12]
امکانات
انجیناکس میتواند برای اجرا محتوای پروتکل انتقال ابرمتن(Http) بر روی شبکه با بهکارگیری کنترلکننده واسط دروازه مشترک سریع یا واسط دروازه کارساز وب، برای متعادل نمودن بار ترافیکی استفاده شود.[13] برای رسیدگی به درخواستهای وب، انجیناکس از روش رویداد (رایانش) غیرهمزمان به جای استفاده از رسیدگی همزمان به درخواستها، استفاده میکند.[14] استفاده از معماری رویداد ناهمگام باعث میشود که انجیناکس بتواند تحت درخواستهای زیاد عملکرد قابل پیشبینی ای از خود نشان دهد.[15][16]
فایل تنظیمات پیشفرض انجیناکس در «nginx.conf» ذخیره میشود.[17]
پروکسی پروتکل انتقال ابرمتن و امکانات وبسرور
- توانایی رسیدگی و پاسخ گویی بیشتر از ۱۰هزار درخواست همزمان در یک لحظه حتی با حافظه محدود
- رسیدگی به فایلهای استاتیک یا ایستا، فهرست بندی فایلها بهطور خودکار
- پراکسی سرور معکوس همراه با ذخیرهسازی
- متعادل نمودن بار ترافیکی همراه با بررسی حفظ پایداری داخلی[18]
- امنیت لایه انتقال همراه با پشتیبانی از «SNI» و «OCSP stapling»، توسط اپناساسال
- پشتیبانی از نسخه ۱٫۱۳٫۱۰ «gRPC» از مارس ۲۰۱۸ تا به امروز[19]
- سازگاری کامل با IPv6
- پشتیبانی از پروتکل انتقال ابرمتن نگارش ۲، ۱ و وبسوکت[19]
- پشتیبانی از تغییر مسیر نشانی وب و «URL rewriting»[20][21]
امکانات پروکسی ایمیل
- پشتیبانی از امنیت لایه انتقال(TLS)
- پشتیبانی از «Opportunistic TLS»
- پشتیبانی از قرارداد ساده نامهرسانی(SMTP)،[22] پاپ (پروتکل) و پروتکل پروکسی IMAP
- نیاز به احراز هویت توسط یک سرور پروتکل انتقال ابرمتن خارجی[23][21]
برخی امکانات دیگر، شامل: پیکربندی و ارتقا اطلاعات بدون قطع شدن اتصالات سمت کاربر،[21] ماژول مبتنی بر معماری دو هسته ای[22] و پشتیبانی از ماژولهای شخص ثالث (third-party module) میباشد.[24]
انجیناکس و انجیناکس پلاس
دو نسخه متفاوت از انجیناکس به نامهای انجیناکس(OSS) و انجیناکس پلاس وجود دارند. انجیناکس پلاس شامل قابلیتهایی اضافه بر انجیناکس(OSS) است که شامل ویژگیهای زیر میشوند:
- بررسی درستی کارکرد سیستم بهطور مداوم و فعال
- ماندگاری سشنها مبتنی بر کوکی
- سرویس تشخیص و ادغام دیاناس
- پاک سازی حافظه نهان API
انجیناکس درمقابل آپاچی
انجیناکس بهطور آشکار، با هدف عملکرد بهتر از وبسرور آپاچی نوشته شدهاست.[25] انجیناکس با استفاده کردن از پروندههای استاتیک به طرز چشمگیری حافظه کمتری را نسبت به آپاچی اشغال میکند به طوریکه تقریباً درهر ثانیه، به چهار برابر درخواستها نسبت به آپاچی رسیدگی میکند.[26] با این حال، این افزایش عملکرد با کاهش انعطافپذیری همراه است که شامل توانایی تغییر دسترسیهای سطحسیستمی به شکل فایل به فایل میشود (وبسرور آپاچی این کار را با استفاده از فایل اچتیاکسس انجام میدهد درحالی که انجیناکس فاقد این قابلیت است) همچنین انجیناکس شهرت بیشتری برای نصب و پیکربندی سختتر نسبت به آپاچی دارد.[27][28]
پیش از این، برای اضافه کردن ماژولهای شخص ثالث به انجیناکس نیاز به کامپایل کردن برنامه از کد منبع بهطور ایستا بود.[29] این مورد در انتشار نسخه ۱٫۹٫۱۱ با اضافه کردن ماژول پیونددهنده پویا، در فوریه سال ۲۰۱۶ بهبود یافت.[30] با این وجود، هنوز ماژولها باید بهطور همزمان با انجیناکس کامپایل شوند، اما همهٔ ماژولها با این سیستم سازگار نیستند و همچنان با استفاده از سیستم قدیمی ایستا کامپایل شوند.[31]
بهطور کلی، انجیناکس در لینوکس دارای پایداری و کارایی بیشتری در مقایسه با ویندوز سرور دارد، این در حالی است که وب سرور آپاچی در هردو سیستم کارایی برابری دارد.[32]
جستارهای وابسته
منابع
- nginx که تلفظ آن "engine X" است.
- "CHANGES". Retrieved 16 May 2017.
- "The NGINX Open Source Project on Ohloh". ohloh.net. Retrieved 7 March 2013.
- "nginx". Retrieved 7 March 2013.
- "Licensing". Retrieved 18 January 2013.
- Nedelcu، 1.
- OpenBSD Upgrade Guide: 5.1 to 5.2, 2012/11/06 15:00:27 sthen
- OpenBSD Following -current: 2014/03/13 - httpd(8) removed
- "November 2016 Web Server Survey". 22 November 2016. Retrieved 19 December 2016.
- "Usage of web servers broken down by ranking". 19 December 2016. Retrieved 19 December 2016.
- "8 surprising facts about real Docker adoption". 13 June 2018. Retrieved 21 June 2018.
- "Wikitech: HTTPS". Wikitech.wikimedia.org. 3 October 2011. Retrieved 3 December 2011.
- "Use NGINX as a Front-end Proxy and Software Load Balancer". Linode Guides & Tutorials. Retrieved 1 June 2018.
- "Welcome to NGINX Wiki! - NGINX". nginx.com.
- "The Architecture of Open Source Applications (Volume 2): nginx". aosabook.org. Retrieved 10 June 2015.
- "How to Configure NGINX". Linode Guides & Tutorials. 8 March 2018.
- "Beginner's Guide". nginx.org. Retrieved 1 June 2018.
- "Module ngx_http_upstream_module". nginx.org. Retrieved 14 August 2012.
- "Proxy: support for connection upgrade (101 Switching Protocols)". trac.nginx.org. 19 February 2013. Retrieved 21 February 2013.
- "Module ngx_mail_auth_http_module". nginx.org. Retrieved 13 September 2012.
- "Official documentation: Controlling nginx". nginx.org. Retrieved 3 December 2011.
- "nginx documentation". nginx.org. Retrieved 9 June 2015.
- "Module ngx_mail_auth_http_module". nginx.org. Retrieved 13 September 2012.
- "3rdPartyModules – Nginx Community". wiki.nginx.org. Retrieved 9 June 2015.
- "NGINX vs. Apache: Our View of a Decade-Old Question". NGINX. 9 October 2015. Retrieved 28 December 2016.
- "Web server performance comparison". DreamHost. Retrieved 28 December 2016.
- Jankov, Tonino (13 June 2018). "Apache vs Nginx Performance: Optimization Techniques — SitePoint". SitePoint. Retrieved 22 October 2018.
- "Which web server should you use – Apache or NGINX?".
- "Choosing Between Apache and NGINX for Your Web Hosting Needs". Hosting Canada.
- "CHANGES-1.10". nginx.org. 31 January 2017.
- "Introducing Dynamic Modules in NGINX 1.9.11 - NGINX". NGINX. 9 February 2016. Retrieved 13 January 2017.
- "Nginx: the High-Performance Web Server and Reverse Proxy". Linux Journal. 1 September 2008. Retrieved 16 August 2009.
مشارکتکنندگان ویکیپدیا. «Nginx». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۷ اکتبر ۲۰۱۹.