وب سرور nginx

وب‌سرور Nginx چیست و چگونه کار می‌کند؟

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

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

بله،! ما امروز در این مقاله هم می‌خواهیم دربارهٔ یکی از این مترجمان حرفه‌ای و کاربلد صحبت کنیم که ارتباط بین مرورگر و سرور را ممکن می‌سازد. این مترجم کسی نیست جز وب سرور nginx.

ابتدا بیایید با خود وب‌سرور nginx آشنا شویم و سپس سراغ کاربردها و زیر و بم نحوه کار کردنش برویم. 

Nginx چیست؟

قبل از شروع آشنایی با جزئیات nginx، اجازه دهید مطمئن شویم با تلفظ درست این وب‌سرور آشنا هستید. انجین ایکس (engine x)‌ تلفظ اصلی عبارت nginx است. خب بریم سراغ ویژگی‌های فنی انجین ایکس. 

Nginx یک وب‌سرور متن‌باز است. از این وب سرور می‌توان به‌عنوان پروکسی معکوس‌ (سروری که وظیفه رساندن درخواست کاربر به وب را انجام می‌دهد)، متعادل‌ساز بار (توزیع موثر ترافیک ورودی بین سرورهای پشتیبانی) و بسیاری موارد دیگر استفاده کرد. 

این وب سرور از پروتکل‌هایی مثل HTTPS ،IMAP، POP3 و SMTP پشتیبانی می‌کند و بیشترین سرعت و بهترین عملکرد ممکن را ارائه می‌کند.

اما سوال اینجاست که دلیل اصلی معروفیت انجین ایکس چه بوده است؟ شاید دلیل اصلی این معروفیت را بتوان در عملکرد بالای این وب‌سرور دانست. نکته دیگری که در محبوبیت nginx موثر بوده است توانایی بالای آن در پاسخگویی به تعداد ریکوئست‌ها زیاد است. 

وب سرور Nginx

اما نحوه کار این وب‌سرور چگونه است؟ در ادامه خواهید خواند.


 پیشنهاد خواندنی: «وب سرور چیست؟ آشنایی کامل با انواع Web Server»


نحوه کار Nginx چگونه است؟

در این بخش می‌خواهیم راز خاص بودن و موفقیت nginx را برایتان فاش کنیم. تا اینجا گفتیم که یکی از نقاط قوت این وب‌سرور پاسخگویی همزمان به تعداد ریکوئست‌های بسیار بالاست.

انجین ایکس با استفاده از رویکرد غیرهمزمان و رویدادمحور توانسته است این امر را ممکن کند. به این صورت که به‌جای ایجاد فرآیندهای جدید برای هر درخواست، انجین ایکس همه درخواست‌ها را در یک شاخه مدیریت و کنترل می‌کند. به این ترتیب نیازی نیست برای پاسخ به یک درخواست سایر درخواست‌ها را مسدود کند و می‌تواند به تعداد ریکوئست‌های زیادی به‌صورت همزمان پاسخ دهد. 

اجازه دهید کمی بیشتر وارد جزئیات ماجرا شویم. 

نحوه کار در انجین ایکس مانند نحوه کار کارگران و سرکارگر ساختمان است. در این مثال فرایند اصلی (Master Process) سرکارگر است و کارگرانی (Worker Processes) دارد که هرکدام به‌صورت جداگانه مشغول پاسخگویی به ریکوئست‌ها هستند.

واضح است هر کارگر مشغول پاسخگویی به ریکوئست خود است و با وارد شدن ریکوئست جدید، از کار دست نمی‌کشد. سرکارگر هم وظیفه مدیریت و تایید کارهای انجام‌شده توسط کارگرها را دارد. 

آشنایی با معماری NGINX به زبان ساده 

خب،‌ از هرچه بگذریم، سخن از معماری وب‌سرور خوش‌تر و البته سخت‌تر است! پس برای فهمیدن معماری انجین ایکس صاف بنشینید و تمام حواستان را جمع این بخش کنید. 

اگر بخواهم به زبان اعجوج و معجوج برایتان سخن بگویم نوشتن این بخش بسیار راحت است و در یک جمله خلاصه می‌شود: انجین ایکس از معماری Master-slave و مکانیزم پیشرفتۀ مبتنی بر رویداد (Event-based) و اعلان‌های چندگانه استفاده می‌کند.

اما خوب قرار نیست به زبان بیگانگان باهم سخن بگوییم. پس به توضیح این جمله به زبان خودمان می‌پردازیم. 

معماری (ارباب-برده) Master-slave که انجین ایکس از آن استفاده می‌کند، نام نوعی مدل ارتباطی در دنیای سخت‌افزار است. در این مدل یکی از اجزا کنترلی یکطرفه بر یک یا چندین عضو دارد. 

همچنین این وب‌سرور رویدادمحور است و معماری با رویکرد همزمان ندارد. معماری انجین ایکس شامل سه بخش اصلی است:

  • فرایندهای کارگر: درخواست‌های جدید را از یک Listen Socket دریافت و می‌توانند هزاران درخواست را پردازش کنند.
  • فرایندهای اصلی: وظیفه این بخش خواندن پیکربندی‌ها با ایجاد، اتصال و عبور از سوکت‌ها و البته تایید آن‌ها است. فرایندهای اصلی (همان سرکارگرها در مثال خودمان) شروع، پایان و تعداد فرایندهای کارگر پیکربندی‌شده را مدیریت می‌کنند.
  • کش‌های پروکسی: فرایندهای خاصی هستند که یک Cache Loader و یک Cash Manager دارند. کش لودر آیتم حافظۀ پنهان دیسک را بررسی می‌کند و دیتابیس درون حافظۀ موتور را با متادیتای حافظۀ پنهان پُر می‌کند.
    این کار نمونه‌های NGINX را برای کار با فایل‌هایی که پیش از این روی دیسک ذخیره شده‌اند، در یک ساختار اختصاصی آماده می‌کند. کش منیجر هم انقضای کش و باطل‌ شدن آن را مدیریت می‌کند.

خب، آنقدرها هم که فکرش را می‌کردید پیچیده نبود، نه؟ در بخش بعدی قصد داریم موضوع را کمی کاربردی‌تر کنیم و معایا و مزایای استفاده از انجین ایکس را بررسی کنیم. 

مزایا و معایب وب سرور Nginx چیست؟

هنگام مطالعه مزایا و معایب یک وب‌سرور باید بینید نسبت به نیازهای شما مزایای وب‌سرور برایتان مهم‌تر است یا معایبش. 

مزایای Nginx

  • تجربهٔ‌ کاربری بهتر

استفاده از انجین ایکس زمان انتظار کاربران برای بارگذاری وب‌سایت را کاهش می‌دهد و این‌گونه تجربۀ کاربری ارزشمندی برای آن‌ها می‌سازد.

  • سرعت بالاتر 

با هدایت ترافیک به سرورهای مختلف، علاوه‌بر افزایش سرعت وب‌سایت، عملکرد آن هم ارتقا پیدا می‌کند. سرعت بالا به‌جز برای سئو سایت در ساختن تجربه کاربری بهتر هم موثر است.

  • قیمت به‌صرفه و خوب 

این وب‌سرور نسبت به سایر وب‌سرورها قیمت معقولی دارد. 

  • مدیریت درخواست‌های زیاد

همانطور که بالاتر ذکر کردیم، یکی از مهم‌ترین مزیت‌های انجین ایکس رسیدگی همزمان به تعداد زیاد درخواست‌ها است. 

  • ارتقا در زمان اجرا 

اگر از nginx به‌عنوان وب‌سرور استفاده می‌کنید،‌ نیازی نیست نگران اختلال‌های احتمال در زمان ارتقا باشید. این وب‌سرور در هنگام ارتقا در عملکردش اختلالی ایجاد نمی‌شود. 

معایب Nginx

از nginx انتظار ندارید که گل بی‌خار باشد! انجین ایکس هم مانند همه وب‌سرورهای دیگر معایبی دارد که عبارتند از:

  • به‌روزرسانی‌های کم و ویژگی‌های محدود

از آنجایی که افراد کمتری از این وب‌سرور استفاده می‌کنند، به‌روزرسانی‌هایی که این سازمان ارائه می‌کند نسبت به سایر رقبا کمتر است و ویژگی‌های کمتری روی وب‌سرور در اختیار کاربران قرار می‌گیرد. 

  • نیاز به دانش فنی بالا

کار کردن با وب سرور انجین ایکس کار هر کسی نیست! تنها افرادی که اطلاعات فنی نسبتاً خوبی دارند می‌توانند از کار کردن با این وب‌سرور لذت ببرند. 

وب‌سرور Nginx به درد چه نوع وب‌سایت‌هایی می‌خورد؟

اگر وب‌سایتی دارید که روزانه هزاران نفر از آن بازدید می‌کنند و در ماه میلیون‌ها بازدید را تجربه می‌کند، بهترین وب‌سرور برای شما وب سرور Nginx است

همان‌طور که در بخش‌های مختلف گفتیم، این وب سرور توانایی پردازش هزاران درخواست را دارد و بدون اینکه باعث افت سرعت و عملکرد وب‌سایت شما شود، بهترین تجربۀ کاربری را برای کاربران می‌سازد. 

جایگزین‌های وب سرور Nginx چه هستند؟

با توجه به محدودیت‌هایی مثل به‌روزرسانی‌های کم و پیچیدگی‌های خاص این وب‌سرور، می‌توانید از جایگزین‌هایی که در ادامه معرفی می‌کنیم، استفاده کنید.

MS IIS

وب سرور iis

وب سرور IIS یا Internet Information Services یک وب‌سرور مایکروسافت است که روی سیستم‌عامل ویندوز اجرا و برای تبادل محتوای وب استاتیک و داینامیک با کاربران اینترنت استفاده می‌شود.

IIS می‌تواند برای میزبانی، استقرار و مدیریت برنامه‌های کاربردی وب با استفاده از فناوری‌هایی مثل ASP.NET و PHP استفاده شود. این وب‌سرور هم مثل nginx برای استفاده در وب‌سایت‌های پُرترافیک مناسب است.


پیشنهاد خواندنی: IIS چیست؟ آشنایی کامل با نحوه نصب وب سرور IIS


وب سرور لایت اسپید (lightspeed)

با وجود اینکه لایت‌اسپید از سایر رقبایش جوان‌تر است، اما هنوز زمان زیادی از عرضه‌اش نگذشته بود که سر و صدای زیادی به پا کرد و رقیبی تمام‌عیار برای انجین ایکس و آپاچی شد. 

این وب‌سرور یکی از بهترین‌های این حوزه است و علاوه‌بر سرعت و امنیت بالا مانند انجین ایکس قابلیت مدیریت و پاسخگویی به ترافیک همزمان و زیاد را هم دارد. در مقاله وب سرور LiteSpeed چیست؟ چه مزایا و معایبی دارد؟ همه‌چیزهایی را که باید درباره‌ٔ این وب‌سرور بدانید را برایتان مو‌به‌مو توضیح داده‌ایم. 

Apache

آپاچی یک وب‌سرور متن‌باز و در حال حاضر محبوب‌ترین وب‌سرور موجود در جهان است. این وب‌سرور علاوه‌بر محبوبیت، یکی از قدیمی‌ترین وب‌سرورهاست که اولین بار در سال ۱۹۹۵ از آن رونمایی شد و  امروزه بسیاری از میزبان‌های سی پنل از آپاچی استفاده می‌کنند. در ادامۀ مقاله به مقایسه آپاچی و Nginx می‌پردازیم.

وب سرور آپاچی


پیشنهاد خواندنی: وب سرور آپاچی چیست؟ آشنایی با رقبای Apache HTTP Server


مقایسۀ آمار استفاده از Nginx و Apache

طبق آمار W3Techs، آپاچی محبوب‌ترین وب‌سرور حال حاضر است و  ۴۳.۶ درصد از تمام وب‌سایت‌های دارای وب سرور، از آپاچی استفاده می‌کنند. Nginx هم با ۴۱.۸ درصد در رتبۀ دوم قرار دارد.

اما خب آمارها همیشه ثابت نیستند و شرکت‌های مختلف آمارهای متفاوت ارائه می‌دهند.آمار بعدی از طرف نت کرافت است. این کمپانی یک پیمایش در بین ۲۳۳ میلیون دامنه انجام داد و میزان استفاده از آپاچی را ۳۱.۵۴ درصد و استفاده از Nginx را ۲۶.۲۰ درصد اعلام کرد.

درست است که اعداد آمارها متفاوت است، اما نتیجه‌گیری ثابت است:

 آپاچی محبوب‌ترین وب‌سرور دنیا و  Nginx محبوب‌ترین وب‌سرور در بین وب‌سایت‌های پربازدید است.

در ادامه بد نیست راه تشخیص وب‌سرور مورد استفاده سایت را یاد بگیریم. این راه را در بخش بعدی توضیح می‌دهیم.

از کجا بفهمیم وب‌سرور سایت آپاچی است یا Nginx؟

سوال این است که آیا می‌توانیم تشخیص دهیم که یک سایت از چه وب‌سروری استفاده می‌کند؟ 

پاسخ کوتاه، بله است. برای تشخیص وب‌سرور یک سایت کافی است هدر HTTP سرور را بررسی کنید. اسم وب‌سرور در این قسمت نوشته شده است. برای دسترسی به هدر HTTP  سایت هم باید networktab  را در Chrome Devtools راه‌اندازی کنید. 

البته استثنایی هم در این بین وجود دارد. اگر سایت مورد نظرتان از سرویس پروکسی مثل cloudflare استفاده کند، هدر HTTP سرور cloudflare را به‌عنوان وب‌سرور زیرین نشان می‌دهد. 

چند نمونه از وب‌سایت‌هایی که از NGINX استفاده می‌کنند

اگر می‌خواهید از اعتبار Nginx مطمئن شوید، پیشنهاد می‌کنیم به لیست شرکت‌های قدرتمند و معتبری نگاه کنید که از این وب‌‌سرور استفاده می‌کنند؛ مثل:

  • فیس‌بوک؛
  • گوگل؛
  • آی بی ام (IBM)؛
  • مایکروسافت؛
  • توئیتر؛
  • اپل؛
  • ادوبی (Adobe)؛

با دیدن این لیست دیگر شکی در معتبر بودن این وب‌سرور باقی‌ نمی‌ماند. 

انجین ایکس انتخابی مناسب و جذاب برای وب‌سایت‌های پُربازدید

در این مقاله به شما گفتیم که وب سرور nginx چیست، معماری آن چگونه است، چه مزایا و معایبی دارد و چه تفاوتی با وب‌سرورهایی مثل آپاچی چیست.

اگر سایت بزرگ و پربازدیدی دارید، Nginx همان وب‌سروری است که به کار شما می‌آید؛ چراکه می‌تواند به‌طور هم‌زمان هزاران درخواست مخاطبان وب‌سایت شما را پردازش کند، بدون اینکه سرعت وب‌سایت کاهش پیدا کند.

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

اگر پس از مصالعه این مقاله باز هم سؤالی دربارهٔ وب‌سرور انجین ایکس داشتید، می‌توانید آن را در بخش نظرات همین مقاله از ما بپرسید.


سؤالات متداول


۱. برای چه کاری می‌توانم از NGINX استفاده کنم؟

از آنجایی که NGINX می‌تواند حجم زیادی از اتصالات را مدیریت کند، معمولاً به‌عنوان یک پروکسی معکوس و متعادل‌کنندۀ بار برای مدیریت ترافیک ورودی و توزیع آن به سرورهای بالادستیِ کندتر استفاده می‌شود.

۲. کدام وب‌سرور از انجین ایکس بهتر است؟

انتخاب وب‌سرور به نوع نیاز شما بستگی دارد. آپاچی به‌دلیل انعطاف‌پذیری و قدرتی که از سیستم ماژول آن به دست می‌آید، محبوبیت خاصی دارد. با ماژول‌های آپاچی، کاربران می‌توانند به راحتی توابع اضافه یا حذف کنند و سرور خود را برای رفع نیازهای خود تغییر دهند.

۳. آیا می‌توانیم انجین ایکس و آپاچی را با هم استفاده کنیم؟

بله شما می‌توانید کار آپاچی را با استفاده از nginx که یک وب‌سرور تکمیلی با کارایی بالا ست بهبود بخشید.

نظر شما راجع به این محتوا چیست؟

آخرین مطالب دسته بندی سرور

دیدگاه ها

اولین نفری باشید که دیدگاه خود را ثبت می کنید

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

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