Ngnix یک وبسرور اوپن سورس است که اصلیترین رقیب و جایگزین وبسرور آپاچی محسوب می شود. این وبسرور از زمان خلق ایده تا به امروز از محبوبیت زیادی برخوردار بوده است و در میان اپلیکیشنهای وب سروینگ جزء بهترین ها محسوب میشود. انجین اکس علاوه بر یک وبسرور، خدمات دیگری را نیز عرضه میکند که شامل پروکسی معکوس، کُچینگ، متعادلسازی لود، مدیا استریمینگ و بسیاری از موارد دیگر می شود. در این مطلب به معرفی کامل این وبسرور بهعنوان رقیب اصلی آپاچی خواهیم پرداخت؛ اما، پیش از آن خوب است بدانید که وبسرور ابزاریست که وظیفهی ذخیرهسازی محتوای یک وبسایت را برعهده دارد. این محتوا میتواند هر چیزی اعم از متن، عکس، صوت، فیلم و... باشد. زمانی که یک کلاینت درخواستش را به سایت ارسال میکند، این وبسرور است که پاسخ مدنظر آن کلاینت را به او میفرستد. در واقع زمانی که شما بهعنوان کاربر، سایت را در مرورگر خود باز میکنید و روی بخشی از سایت کلیک میکنید، مرورگر درخواست شما را به وبسرور ارسال میکند و سپس این وبسرور است که پاسخی درخور با درخواستتان برای شما ارسال میکند. وبسرور زیر مجموعهای از سرور است.
با انجین اکس آشنا شوید
هدف از خلق انجین اکس این بود که سریعترین وبسرور باشد و هنوز هم با جدیت این هدف را دنبال میکند. انجین اکس از نظر عملکرد و کارایی از بسیاری از وبسرورهای دیگر از جمله آپاچی پیشی گرفته است. در حال حاضر نسبت به زمانی که Ngnix ایجاد شد، اکثر وبسایت ها از صفحات HTML ساده به طراحی هایی با محتواهای چندگانه صوتی و بصری تبدیل شدهاند؛ اما، وبسرور انجین اکس همچنان در مسیر این پیشرفت حرکت می کند و همگام با پیشرفت وبسایت ها در بستر مدرن وب در حال فعالیت است. این پیشرفت ها شامل موضوعاتی مانند وب سوکت، HTTP/2، gRPC و استریمینگ فرمت های مختلف ویدئو مانند فرمت های HDS، HLS، RTMP و دیگر انواع فرمت ها می شوند.
Ngnix در گذر زمان
انجین اکس توسط ایگور سیسوف نوشته شد تا مشکل C10k در وبسرورها حل شود. این لغت که در سال 1999 ابداع شد به دستهای از مشکلات وب سروینگ اشاره دارد که با تعداد 10k اتصال همزمان پیش خواهد آمد. انجین اکس با ساختار ویژهی خود انقلابی در سرورهای اجرایی ایجاد کرد و با گذر زمان به پر سرعت ترین وبسرور در دسترس تبدیل شد.
پس از ارائهی این پروژهی اوپن سورس در سال 2004 و مشاهدهی پیشرفت و محبوبیت آن، سیسوف شرکت تجاری Ngnix را تأسیس کرد تا از این طریق بتواند خدمات انجین اکس را گسترش دهد و در کنار آن یک محصول دیگر بهنام Ngnix plus را ارائه دهد. امروزه انجین اکس و انجین اکس پلاس صدها هزار اتصال همزمان را برای میلیون ها سایت پربازدید در بستر وب مدیریت می کنند و در این مسئله نسبت به مابقی وبسرورها پیشتاز هستند.
کاربردهایِ Ngnix
همانطور که گفته شد کاربرد Ngnix چیزی فراتر از یک وبسرور است و اگر آن را برای پیشتیبانی از وبسایت خود انتخاب کنید می توانید از دیگر کاربردهای آن نیز بهرهمند شوید. برخی از کاربردهای انجین اکس به شرح زیرند:
- مدیریت و پشتیبانی یک وبسایت بهشکل همزمان؛
- فشردهسازی gzip؛
- پشتیبانی از پروتکل هایی نظیر SPDY؛
- Load Balancing؛؛
- Fault tolerance؛
- پنهان کردن موجودی سرور؛
- انتشار درخواست ها؛
- کاهش فشار محتوا؛
- فشرده کردن درخواست های میانسِروری.
انجین اکس و تواناییهایش
زمینهی فعالیت های انجین اکس فراتر از یک وبسرور است. این وبسرور بهعنوان سریع ترین وبسرور فعال معروف شده و به همین دلیل علاوه بر سروینگ محتوا برای بسیاری دیگر از فعالیت های وب ایده آل خواهد بود. این وبسرور می تواند حجم زیادی از اتصالات را سروسامان دهد و بهعنوان یک پراکسی معکوس و متعادلکنندهی لود عمل می کند تا ترافیک ورودی کنترل شود.
این وبسرورِ سرعتی، همچنین می تواند ارتباطی بین کاربر و وبسرور بعدی برقرار کرده و بهعنوان یک SSL/TLS terminator یا یک شتابدهندهی وب عمل کند. انجین اکس محبوب ما میتواند ،بهعنوان یک میانجی، به عواملی که باعث کاهش سرعت وبسرور شما شدهاند رسیدگی کند. سایت ها با استفاده از ابزارهای گوناگونی مانند پلترفرم کدنویسی Node.js یا زبان برنامهنویسی PHP روی انجین اکس پیاده سازی می شوند.
انجین اکس خوب است اما...
وبسرور انجین اکس در مقایسه با دیگر وبسرورها از مزایایی برخوردار است و البته معایبی نیز دارد که در برابر کاربرد Ngnix قابل چشمپوشی است. برخی از مزایا و معایب این وبسرور بهطور مختصر به شرح زیرند:
مزایا
- اوپن سورس است؛
- حجم کمی دارد و به این ترتیب منابع کمتری از سیستم ،همچون پردازشگر، رم و...، برای اجرای وظایف وبسرور درگیر خواهند شد؛
- محتواهای استاتیک در آن بهخوبی مدیریت می شوند؛
- دارای توانایی Load balancing است؛
- امکان مدیریت بیش از دههزار اتصال بهشکل همزمان در آن وجود دارد؛
- از پروتکل SPDY پشتیبانی میکند.
معایب
Ngnix نسبت به آپاچی و بهعنوان رقیب اصلی آن، از ماژول های کمتری برخوردار است. انجین اکس یک پلتفرم جامع برای ارتباط کاربران با یکدیگر و رفع مشکلات آنان از این طریق در نظر نگرفته است. همچنین عملکرد این وبسرور روی ویندوز دارای نواقصی است و به همین دلیل کاربران ویندوز چندان از آن استقبال نکردهاند.
از Nginx استفاده کنید اگر...
انجین اکس پلاس و انجین اکس بهترین سرورهای کلاس وب هستند که وبسایت های پرترافیکی نظیر Dropbox، Netflix و Zynga از خدمات آن استفاده می کنند. بیش از 400 میلیون وبسایت در جهان از این وبسرور استفاده میکنند چرا که امنیت و اعتبار آن طی سال های اخیر اثبات شده است.
شما می توانید از این وبسرور بهعنوان یک پراکسی معکوس، و لود بالانسر نیز استفاده کنید؛ زیرا، توانایی ترجمهی مودالهای انواع اپلیکیشن سرورها مانند FastCGI و SCGI را هم دارد. انجین اکس پلاس نیز ترکیبی از چندین عملکرد را بهشکل همزمان در اختیار شما میگذارد که شامل خدمات وب سروینگ، لود بالانسینگ پیشرفته، کچینگ، مدیریت، کنترل و روتینگ درخواست ها می شود. تمام این خدمات در قالب یک راهکار مقرون به صرفه برای محتواهای استاتیک و داینامیک با سرعت بالا و بهشکلی مؤثر برای کاربران در وبسرور انجین اکس وجود دارند؛ بنابراین، بدیهی است در صورتی که وبسایت شما بازدیدکنندگان زیادی دارد، این وبسرور قدرتمند برایتان مفید خواهد بود.
تفاوت وبسرور ngnix با وبسرور آپاچی
موارد متعددی وجود دارند که می توان از طریق آن ها این دو وبسرور قدرتمند و رقیب را با هم مقایسه کرد. برخی از مهمترین مقوله های قابل قیاس بین این دو وبسرور شامل ساختار مدیریت ارتباط، محتوای استاتیک و داینامیک، تنظیمات متمرکز و توزیع شده، ترجمهی فایل یا URLها، ماژول ها و سازگاری آن ها می شود.
Ngnix نسبت به وبسرورهای دیگر از سرعت بالاتری برخوردار است و در ارائهی داده های استاتیک بسیار سریع عمل می کند؛ همچنین سرعت آن تقریبا دو برابر آپاچی است. در این وبسرور یک پردازشگر مرکزی وجود دارد. تفاوت اصلی بین آپاچی و انجین اکس در نوع پردازش و رشته هایی است که در این پردازشگر مرکزی استفاده میشوند. در وبسرور انجین اکس هر رشته به اتصالات زیادی پاسخ خواهد داد در صورتی که در وبسرور آپاچی اینگونه نیست و هر رشته تنها به یک اتصال پاسخ می دهد.
برای پردازش محتوای استاتیک، Ngnix سرعتی تقریبا 2.5 برابر بیشتر از آپاچی دارد و به 1000 اتصال بهصورت همزمان پاسخ می دهد. به این ترتیب وبسایت هایی که با داده های استاتیک سروکار دارند، بهتر است که از وبسرور انجین اکس استفاده کنند. بررسی های انجام شده نشان می دهد که برای پردازش اطلاعات داینامیک، قدرت و سرعت انجین اکس با آپاچی تقریبا یکسان است.
لازم به ذکر است هر دو وبسرور مذکور از سیستم عامل های لینوکس و ویندوز پشتیبانی می کنند؛ اما، انجین اکس در ویندوز بهشکل محدودتری اجرا می شود.
انجین اکس را روی centOS8 اینطور نصب کنید
برای نصب انجین اکس روی centos8، از پکیج منیجر dnf استفاده خواهیم کرد. این پکیج را با دستور زیر نصب کنید:
sudo dnf install nginx
سپس برای تأیید درخواست نصب خود y را وارد کنید و پس از آن نصب Ngnix برای شما انجام می شود. بعد از اتمام این مرحله دستورات زیر را وارد کنید:
sudo systemctl enable nginx
sudo systemctl start nginx
با انجام این مرحله انجین اکس در بوت سیستم شروع به کار می کند.
در مرحلهی بعد لازم است فایروال را تنظیم کرده تا بتوانید اتصالات خارجی را در سرور مجازی Ngnix اجرا کنید. برای فعالکردن تنظیمات دائمی اتصالات HTTP در پورت 80 دستور زیر را وارد کنید:
sudo firewall-cmd --permanent --add-service=http
سپس برای تأیید این که کد را صحیح وارد کردهاید دستور زیر را بنویسید:
sudo firewall-cmd --permanent --list-all
در مرحلهی بعد این خروجی برای شما نمایش داده خواهد شد:
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
برای اعمالکردن تغییرات لازم است سرویس فایروال را مجددا لود کنید و با این دستور پیش بروید:
sudo firewall-cmd –reload
به این ترتیب سرور Ngnix برای شما بهطور کامل نصب خواهد شد و برای بازدیدکنندگان قابل دسترسی خواهد بود.
مراحل نصب انجین اکس روی ابونتو
نصب انجین اکس تنها با چند مرحلهی کوتاه روی ابونتو انجامشدنی است. در مرحلهی اول دستور زیر را وارد کنید:
sudo apt update
sudo apt install nginx
سپس برای آغاز نصب سرویس نیز دستور زیر را وارد کنید:
/etc/init.d/nginx start
پس از نصب نیز IP آدرس سرور خود را در براوزر خود وارد کنید. در صورتی که پیغام زیر برای شما نمایش داده شود به این معنا است که عملیات نصب را با موفقیت انجام دادهاید:
Welcome to ngnix!
If you see this page the ngnix web server is successfully installed and working.
Further configuration is required.
For online documentation and support please refer to ngnix.org.
Commercial support is available at ngnix.com.
Thank you for using ngnix.
سخن پایانی
وبسرور انجین اکس بهعنوان راهحلی برای مشکل c10k توسط ایگور سیسوف طراحی و عرضه شد. این راهحل زمانی برای حل معضل ترافیک و مدیریت اتصالات همزمان یک سایت طراحی شد که حتی وبسرور قدرتمندی به نام آپاچی نیز توانایی حل این مشکل را نداشت. مدیریت حجم بالای ترافیک با پراکسی معکوس و تعادل بار و با کمک انجین اکس انجام گرفت تا جایی که این وبسرور در حال حاضر بهعنوان محبوب ترین و پرکاربردترین وبسرور شناخته می شود. وبسرور انجین اکس کاربردهای زیادی دارد و کاربرد آن تنها به خدمات وبسرور محدود نمی شود. در این مطلب سعی شد تا علاوه بر معرفی کامل این وبسرور به مقایسهی آن با آپاچی و نحوهی نصب آن روی centos8 و ابونتو توضیحاتی داده شود. در پایان به شما پیشنهاد می کنیم اگر وبسایت پربازدیدی دارید، وبسرور انجین اکس را نصب کنید و از خدمات فراوان آن بهرهمند گردید.
منبع
www.nginx.com/resources/glossary/nginx