آیا تا به حال درباره Nginx شنیده اید؟ درباره Apache Web Server چه می دانید؟ برای یک سایت از کدام یک از این دو استفاده می کنید و دلیل شما برای این انتخاب چیست؟
در این مبحث به این موضوع خواهیم پرداخت.

Apache Web Server

Apache Web Server

Apache وب سروری است که از سال 1995 تولید شده و به شدت مورد استفاده است. این وب سرور بیشترین استفاده را در بین وب سرورها دارد. از مزایای این وب سرور کارکرد آن بر روی سیستم عامل های مختلف و متن باز بودن آن است. تنها در ماه جون سال 2013 این وب سرور 54.2% از کل وب سایت ها را سرویس می داد. این وب سرور به دلیل استفاده از ماژول های آماده که می توانند کارایی هسته آن را تغییر دهند، بسیار منعطف است و به سرعت گسترده تر شده و ابزارهای آن افزایش می یابند. از معروف ترین این ماژول ها می توان به mod_access، mod_auth، mod_digest، mod_auth_digest اشاره نمود. با این ماژول ها می توان ورود به سایت را از طریق وب سرور انجام داد و حتی این وب سرور این قابلیت را دارد که ورود را از طریق دیتابیس انجام دهد.

ماژول های دیگر این وب سرور mod_ssl برای پشتیبانی از Secure Socket Layer و Transport Layer Security است. mod_proxy و mod_rewrite نیز برای استفاده از پراکسی و تغییرهای آدرس از طریق وب سرور استفاده می شوند.

این وب سرور قابلیت تغییر لاگ های ایجادی خود را نیز به مدیران سایت ها می دهد. همچنین با استفاده از ماژول gzip توانایی کاهش حجم خروجی وب سایت به کمک فشرده سازی آن را دارد.

Apache به گونه ای طراحی شده که بتواند بیشترین ورودی را دریافت کند و کمترین تاخیر را در پاسخ دهی داشته باشد. این وب سرور به صورت Multi Thread کار می کند و هر درخواست را در یک Thread یا نخ جداگانه مدیریت می کند. در ورژن آخر این وب سرور استفاده کمتر از حافظه نیز مدنظر بوده است.

Nginx

Nginx

Nginx در واقع یک Reverse Proxy و وب سرور برای پروتکل های HTTP، HTTPS، SMTP، POP3 و IMAP است که کار Load Balancing و Caching را نیز انجام می دهد. این ابزار نیز Open Source است. در هنگام تولید این ابزار تمرکز بر روی همرونندی، اجرای سریع و استفاده کم از حافظه بوده است. این وب سرور نیز بر روی چندین سیستم عامل قابلیت اجرا دارد.

این وب سرور برای سایت هایی با بیش از 500 میلیون درخواست در روز در سال 2008 طراحی شد. در سال 2014 در حدود 14.47% از کل سایت ها از این وب سرور استفاده می کردند که بعد از Apache و Microsoft بیشترین تعداد در بین وب سرورها را داشت.

رشد استفاده از این وب سرور بسیار بالا می باشد به طوری که استفاده از دیگر وب سرورها به صورت ملموسی در حال کاهش است. در ماه جولای 2014 برای اولین بار میزان استفاده از Microsoft از Apache پیشی گرفت ولی هر دو با کاهش سایت مواجه بودند. این آمار را به طور دقیق تر می توانید در اینجا مشاهده نمایید.

نمودار فوق رشد Nginx را به خوبی نشان می دهد.

از قابلیت های این وب سرور می توان به توانایی پاسخ دهی به 10 هزار درخواست در هر لحظه اشاره نمود. همچنین به ازای هر 10 هزار اتصال غیر فعال تنها 2.5 MB از حافظه را اشغال می کند. در سرویس دهی به فایل های استاتیک بسیار سریع تر از Apache عمل می کند. قابلیت Reverse Proxy بودن به همراه Caching را دارد. می تواند وظیفه Load Balancing را نیز برعهده بگیرد. این وب سرور قابلیت های بسیار دیگری دارد که خارج از بحث می باشد.

برای انتخاب یکی از این دو وب سرور می بایست به نیاز وب سایت دقت نمایید. اگر وب سایت سریع با تعداد درخواست بالایی نیاز دارید، می توانید با استفاده از Caching و Load Balancing در Nginx به موفقیت برسید. اما Apache ابزاری است که قابلیت های زیادی را پیش روی شما می گذارد.

یک وب سایت ساده با کاربران کم می تواند از هر دو تکنولوژی استفاده کند. البته این به زبان برنامه نویسی نیز مستقیما بستگی دارد. برای مثال اگر از Python  و یا Ruby استفاده می کنید، Apache احتمالا برای شما بهتر خواهد بود چراکه از CGI استفاده نمی کند. اما برای PHP می توان از هر دوی آنها استفاده نمود. به علاوه می توانید از هر دو تکنولوژی به صورت همزمان استفاده کنید. برای مثال برای Proxy Server از Nginx و برای وب سرور از Apache استفاده کنید. برای سایت ها با بازدید بسیار بالا که نیاز شدیدی به Caching دارند می توان از Nginx به عنوان گزینه بهتر استفاده نمود.

“Apache مانند Microsoft Word بیش از 50 میلیون گزینه دارد که شما تنها به شش تای آنها نیاز دارید. Nginx آن شش گزینه را دارد و پنج تای آنها را 50 برابر سریع تر از Apache انجام می دهد.” Chris Lea

منابع

  1. Nginx Official Website
  2. Chris Lea On Nginx And WordPress
  3. .wikivs Apache vs nginx
  4. Apache vs nginx performance comparison
  5. itworld : Choosing a Linux web server: Nginx vs. Apache
  6. wikipedia Apache HTTP Server
  7. anturis nginx vs apache

علی رحمتی

زکات علم آموزش آن است.

Latest posts by علی رحمتی (see all)

facebooktwittergoogle_pluslinkedin

دیدگاه

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

*

*