معرفی بهترین وب سرور های سال ۲۰۱۷

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

وب سرور چیست ؟

وب سرور برنامه ای است که از HTTP یا همان پروتوکل انتقال ابرمتن (Hypertext Transfer Protocol) جهت ارائه صفحات وب به کاربر استفاده میکند. اطلاعات ارائه شده توسط کلاینت در سیستم کاربر که به زبان ساده همان مرورگرها هستند ترجمه شده و برای کاربر نمایش داده میشود. ممکن است به Server ها و نرم افزار های سرویس دهنده نیز وب سرور گفته شود که در این مقاله منظور از وب سرور سرویس دهنده HTTP میباشد.

تمامی میزبانان وبسایت ها باید از وب سرور جهت ارائه سرویس استفاده کنند، از این رو باید یکی از وب سرور های Apache [یکی از پر استفاده ترین وب سرور ها] IIS [Microsoft’s Internet Information Server], Nginx, GWS, lighttpd, LiteSpeed و… را جهت ارائه سرویس انتخاب نمایند.

معمولا وب سرور ها در کنار پکیجی از پروتکل ها و سرویس ها مانند سرویس های SMTP,FTP و… اقدام به سرویس دهی میکنند.قبل از انتخاب نوع وب سرور باید نوع سرویسی که قرار است روی سرور ارائه شود بطور کامل مشخص شود تا با توجه به نیاز خود وب سرور را انتخاب نمایید. توجه داشته باشید انتخاب اشتباه ممکن است در سرور های Critical Mission موجب قطع سرویس دهی گردد، هرچند در سرور های Low priority تغییر نوع وب سرور مشکل خاصی ایجاد نخواهد کرد. علاوه بر موارد ذکر شده انتخاب وب سرور گاها به پلتفرم سیستم عامل، امنیت و زبان برنامه نویسی استفاده شده نیز مرتبط میباشد.

Apache : آپاچی یکی از پر استفاده ترین وب سرور های دنیا میباشد. اپاچی در سال ۱۹۹۵ منتشر شد و پایداری و قدرت آن باعث شد تا نقشی کلیدی در دنیای WWW ایفا کند.[World Wide Web] پس از انتشار، محبوبیت اپاچی روز به روز افزایش یافت بصورتی که در سال ۲۰۰۹ حدود ۱۰۰ میلیون وبسایت توسط آپاچی سرو می شد. در گذشته نیز همانند حال apache بر روی سیستم عامل های خانواده unix (بیشتر لینوکس) برای سرویس دهی نصب میشد، هرچند این وب سرور میتواند روی سرور های ویندوزی نیز سرویس دهی نمایید. در ویندوز اغلب developer ها و برنامه نویس ها جهت اجرا و کامپایل کد خود از اپاچی استفاده میکنند. با افتخار اپاچی یک وب سرور متن باز میباشد که همین امر باعث توسعه روز افزون ان شده است. نام apache برگرفته از نام یکی از قبیله های بومی آمریکاست که در استراتژی و جنگ مهارت بالایی داشتند.

آپاچی دارای امکانات زیادی میباشد که بسیاری از انها با کامپایل شدن به این وب سرور اضافه خواهد شد که قابلیت های core این وب سرور را بشدت افزایش میدهد. دامنه این گسترش میتواند از تعدد زبان های برنامه نویسی تا ماژول های احراز هویت و … باشد. از زبان های برنامه نویسی پر استفاده میتوان به Perl، Python، TCL و PHP اشاره کرد. ماژول های احرازهویت نیز شامل mod_access، mod_auth، mod_digest و mod_auth_digest میباشد. از دیگر نمونه ماژول های این وب سرور میتوان به Secure Socket Layer و Transport Layer Security یعنی mod_ssl، ماژول پروکسی mod_proxy، ماژول بازنویسی آدرس ها mod_rewrite اشاره کرد. ماژول های زیادی برای این وب سرور منتشر شده است که امکانت کنترل و اعمال محدودیت های بسیاری را به شما میدهد. ماژول های ذکر شده جزو ماژول های داخلی apache هستند که معمولا به همراه ان نصب و کامپایل خواهند شد.

امکانات HTTP proxy و Web server :

  • لود و استفاده از ماژول ها بصورت پویا
  • ماژول پردازش چندگانه درخواست ها [MPM]
  • بسیار مقیاس پذیر(براحتی ۱۰۰۰۰ اتصال را بصورت همزمان هندل میکند)
  • هندل کردن فایل های static و فایل های index
  • پشتیبانی از htaccess
  • پروکسی معکوس به همراه کش
  • مکانیزم Load Balancing بصورت همزمان
  • قابلیت Fault Tolerance و Failover به همراه بازیابی خودکار
  • WebSocket, FastCGI, SCGI, AJP و uWSGI به همراه پشتیبانی از کش
  • تنظیمات پویا
  • قابلیت TLS/SSL با SNI  و پشتیبانی از OCSP stapling با استفاده از OpenSSL
  • پشتیبانی از IPV6
  • پشتیبانی از پروتکل HTTP/2
  • پشتیبانی از gzip
  • پشتیبانی از URL Rewriting
  • پشتیبانی از بازنویسی هدر ها و محتوا
  • اعمال محدودیت در کانکشن های فعال
  • محدودیت در تعداد درخواست های پردازش
  • اعمال محدودیت در پهنای باند
  • ردگیری Session و کاربر
  • WebDAV
  • پشتیبانی از perl و PHP به همراه اسکریپت های Lua
  • پشتیبانی از CGI
  • پوشه public_html برای هر کاربر
  • پشتیبان از XML

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • mod_rewrite : جهت تغییر در URL و دریافت کد response مربوط به HTTP استفاده می شود.
  • mod_deflate : محتوا و فایل ها را قبل از ارسال به مرورگر توسط gzip فشرده میکند و فایل های فشرده شده بصورت اتوماتیک توسط مرورگر از حالت فشرده خرج میشود.
  • mod_security : این ماژول به شما این قابلیت را میدهد که محتوا را از بر اساس post data ، ادرس URL و یا هرچیزی که در request ارسالی وجود دارد بلاک نمایید.
  • mod_speling : با این ماژول میتوانید حروف درون URL ها را برسی نمایید.(بر خلاف ویندوز لینوکس روی بزرگی و کوچکی حروف در URL حساس میباشد)
  • mod_cache : برای کش کردن فایل ها روی مموری و یا هارد دیسک استفاده میشود.
  • mod_setenvif : جهت بکارگرفتن متغیر برای شرایط و محیط های مختلف میباشد بطور مثل اگر مرورگر firefox بود Action مورد نظر را انجاد دهد.
  • mod_auth : جهت اعتبار سنجی و یا احرازهویت استفاده میشود.
  • mod_ssl : با این ماژول میتوانید از HTTPS استفاده نمایید.
  • mod_bwlimited : کنترل پهنای باند، سرعت، تعداد کانکشن با استفاده از این ماژول امکانپذیر میباشد.

همانطور که عرض شد برای apache ماژول های بسیاری منتظر شده که در آینده به اختصار پر کاربردترین module ها در پست جدید معرفی و آموزش داده خواهد شد.

عملکرد و بازدهی :

بجای اجرای یک معماری تک پردازشی، آپاچی مازول های چند پردازشی [MultiProcessing Modules – MPMs] متنوعی را ارائه کرده است، که آن را قادر میسازد تا در مدهای Process-based, hybrid و event-hybrid سرویس دهی نمایید.( مدهای آپاچی در یک پست جدید بطور کامل معرفی خواهد شد)
با این تفاسیر پیداست برسی و انتخاب مد کاری اپاچی با توجه به هندل کردن request های بیشتر در زمان معقول مهم میباشد. در تحویل محتوای Static اپاچی ۲.۲ بطور قابل ملاحظه ای کندتر از وب سرور Nginx و varnish عمل میکند. برای رفع این مشکل Event MPM را تولید کردند که از ترکیب پردازش ها و thread های متعدد برای هر پردازش برای مد event-based بصورت غیر همزمان استفاده میکند. در نوع معماری و نوع پیاده سازی آن در اپاچی ۲.۴ عرضه شد تا performance بهتری را در این ورژن به شاهد باشیم، هرچند در benchmark هنوز هم سرعت پاسخ به درخواست های static نصف وب سرور nginx است.برای سرویس دهی اپاچی فقط به HTTP محدود نبوده و محصولات بسیاری را جهت سرویس دهی تولید کرده است مانند پاسخ دهی به نرم افزار های جاوا و big data و… که جدا از سرویس HTTP میباشد.

Nginx : وب سرور Nginx رایگان بوده و بصورت OpenSource عرضه شده است. این وب سرور در حال حاضر توسط پلتفرم های unix, windows و mac پشتیبانی میشود. حدود ۱۲ درصد از سایت های موجود از این وب سرور استفاده میکنند. این پروژه در سال ۲۰۰۱ شروع بکار کرد و توسط یک توسعه‌دهنده به نام ایگور سیسووف به مرحله اجرا درآمد تا در یکی از وب‌سایت‌های پرترافیک به نام رامبرلر عملیاتی شود. این وب‌سایت در سال ۲۰۰۸، روزانه بیش از ۵۰۰ میلیون درخواست HTTP داشته است.

nginx میتواند طوری عملیاتی شود که محتوای dynamic مربوط به HTTP را با استفاده از FastCGI، برای اسکریپت از SCGI و برای برنامه های تحت سرور از WSGI استفاده نمایید. از این وب سرور نیز میتوان به عنوام نرم افزار Load Balancer استفاده کرد. nginx از رویش asynchronous event-driven استفاده میکند تا request ها را پاسخ دهد، این نوع معماری باعث میشود تا لود سرور در زمان High Load شدن قابل پیش بینی باشد.

امکانات HTTP proxy و Web server :

  • هندل کردن بیش از ۱۰۰۰۰ کانکشن همزمان با کمترین میزان مصرف حافظه (۲.۵ مگابایت برای ۱۰۰۰۰ اتصال HTTP)
  • هندل کردن فایل های static
  • Reverse Proxy با استفاده از Caching
  • پیاده سازی Load Balancing
  • قابلیت Fault tolerance
  • قابلیت TLS/SSL با SNI  و پشتیبانی از OCSP stapling با استفاده از OpenSSL
  • Fast CGI, SCGI و uWSGI با پشتیبانی از chaching
  • سازگاری با IPV6
  • پشتیبانی از پروتکل HTTP/2
  • WebSockets و HTTP/1.1 اپگرید شده است.
  • قابلیت Streaming برای فرمت های FLV و MP4
  • اعتبار سنجی روی Webpage ها
  • قابلیت فعال سازی gzip
  • امکان URL rewriting
  • اعمال محدودیت روی connection ها
  • اعمال محدودیت تعداد پردازش ها
  • کنترل پهنای باند
  • کنترل بر اسال محدوده IP
  • ردگیری کاربران
  • پشتیبانی از زبان اسکریپتی Perl
  • فایروال برنامه های تحت وب با استفاده از ماژول Naxsi
  • پشتیبانی از SMTP, POP3 و IMAP
  • بهره گیری از تعداد زباده ماژول های third party

مفسر htaccess در این وب سرور پشتیبانی نمیشود. هرچند در دید اول این مورد نقص یا کمبود به نظر میرسد اما این مورد به دلایلی که در مقلات بعدی ذکر خواهیم کرد باعث افزار سرعت شده و کارایی وب سرور را افزایش خواهد داد.

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • Accept Language Module : دریافت زبان بصورت هدر parser
  • Audio Track for HTTP Live Streaming : تولید ترک صوتی برای پخش زنده صوت [HLS]
  • HTTP Drizzle : ارتباط مستقیم با MySQL
  • Upstream Fair Balancer : توضیع request های دریافت شده روی خلوت ترین سرور
  • Limit Upstream Connection : محدود کردن connection ها برای هر سرور روی Upstream
  • MP4 Streaming Lite : نمایش فایل تصویری H.264/MP4 با زمان مشخص شده به همراه پارامتر Start در Url
  • Naxsi : فایروال برای برنامه های تحت وب
  • nginx-ip-blocker : یک مسدود کننده IP کاربردی در حافظه اشتراکی
  • Notice : یک سرو کننده فایل های Static به درخواست های POST
  • PageSpeed : بازنویس مجدد صفحات وب جهت کاهش Latency در پاسخ و کاهش مصرف پهنای باند
  • HTTP Redis : ماژول پشتیبانی از Redis
  • Secure Download : تولید لینک دانلود با تاریخ انقضا
  • NGINX Upload Progress Moduled : ردگیری و گزارش مراحل آپلود
  • و …

Lighttpd : سریع، امن و سازگار با محیط های مختلف ۳ کلمه کلیدی برای معرفی lighttpd میباشد. این وب سرور برای سرویس دهی در شرایط High Load و High Performance طراحی شده است. طبق تعاریف در سایت lighttpd این وبسرور در میان دیگر وب سرور ها کمترین میزان مصرف رم را به خود اختصاص داده است.امکانات پیشرفته ان نظیر FastCGI, CGI, Auth, Output-Compression, URL-Rewriting و … باعث شده تا این وب سرور یک انتخاب عالی برای سرور های High Load باشد.

این وب سرور در گذشته توسط دو وبسایت YouTobe و Meebo استفاده می شد. برخی از ماژول های اپاچی نیز در این وب سرور قابل استفاده میباشد.

امکانات و قابلیت ها :

  • قابلیت پیاده سازی Load Balancing روی FastCGI و SCGI همچنین پشتیبانی از HTTP Proxy
  • پشتیبانی از chroot
  • مکانیزم برسی رویداد های وب سرور
  • پشتیبانی از URL Rewriting
  • پشتیبانی از پروکل های امنیتی مانند openssl و TLS/SSL
  • اعتبار سنجی مقابل سرور های LDAP
  • ابزار اماری RRDtool
  • پشتیبانی از Virtual host
  • پشتیبانی از ماژول ها
  • پشتیبانی از حالت مینیمال WebDAV
  • پشتیبانی از Servlet (AJP)
  • پشتیبانی از فشرده سازی و در ورژن های جدیدتر نیز Mod_deflate نیز پشتیبانی میشود.
  • بسیار کم حجم (کمتر از ۱ مگابایت)
  • طراحی شده بصورت تک پردازشی به همراه چند thread

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • mod_webdav :  پشتیبانی از webdav
  • mod_compress : پشتیبانی از فشرده سازی جهت کاهش لود و افزایش سرعت
  • mod_evasive : ماژول جلوگیری از DDos
  • mod_fastcgi : ماژول FastCGI
  • mod_redirect : جهت redirect کردن url استفاده میشود.
  • mod_rrdtool : امار وضعیت وضعیت سرور و شبکه
  • mod_secdownload : اعتبار سنجی کاربر جهت استفاده از لینک دانلود
  • mod_userdir : پشتیبانی از public_html برای هر یوزر
  • mod_flv_streaming : پخش فایل های flv بصورت زنده
  • و …

LiteSpeed : این وب سرور توسط ۲% از وب سایت های جهان در حال استفاده میباشد. لایت اسپید بصورت تخصصی برای سایت های پربازدید طراحی شده و تجربه شخصی بنده هم در این خصوص این مورد را به من ثابت کرده است. زمانی که شما از اپاچی به لایت اسپید وب سرور را سوییچ میکنید لود سرور به ۱/۳ کاهش میابد! البته این مورد به شرابط و نوع سرویس دهی وب سایت شما نیز بستگی خواهد داشت. هرچند لایت اسپید بصورت free نیز قابل استفاده میباشد اما برای داشتن performance بهتر باید لایسنس ان را تهیه نمایید. پرداخت هزینه برای لایسنس زمانی توجیح مالی پیدا میکند که از هزینه های سمت سرور و شبکه شما کاسته شود.

LSWS با اپاچی سازگار است، به این معنی که تقریبا اکثر قابلیت های اپاچی مانند htaccess, Mod Security و Mod Rewrite را پشتیبانی میکند. لایت اسپید در سال ۲۰۱۶ جایگاه چهارم را در بیین وب سرور های در حال استفاده به خود اختصاص داده است و ممکن است علت این جایگاه این باشد که این وب سرور هزینه استفاده داشته و تقریبا رایگان نمیباشد. از دیگر نقاط مثبت ان میتوان به کاهش هزینه نگه داری و خریداری سخت افزار، امنیت . پایداری و performance بالا نام برد.

معرفی برخی از ماژول های توسعه یافته معروف به اختصار:

  • Cache : فعال سازی کش
  • Lua پشتیبانی از Lua
  • PageSpeed : ماژول افزایش سرعت
  • Registering : ماژول register

Internet Information Services :  یک وب سرور که بصورت کامل با ویندوز سازگار بوده و فقط هم روی همین پلتفرم قابل استفاده میباشد. IIS پروتکل های HTTP, HTTPS, FTP, FTPS, SMTP  و NNTP را پشتیبانی میکند. IIS به عنوان سرویس همراه ویندوز های سرور ارائه شده و به عنوان یک وب سرور رایگان محسوب نمی گردد. اخرین نسخه IIS در زمان تعلیف این مقاله نسخه ۱۰ میباشد که به همراه ویندوز سرور ۲۰۱۶ و ویندوز ۱۰ ارائه شده است. IIS از زبان های خوانواده .Net و ASP.net و دیگر زبان ها نظیر PHP پشتیبانی میکند.

امکانات و قابلیت ها :

  • IIS از مکانیزم های متعدد احراز هویت نظیر Anonymous authentication, Basic access authentication, Digest access authentication, Integrated Windows Authentication, UNC authentication و  NET Passport Authentication پشتیبانی میکند.
  • پشتیبانی از انواع مازول های امنیتی مانند فیلتر کردن درخواست ها و اجرای اعتبار سنجی روی URL ها و ..
  • پشتیبانی از فشرده سازی
  • ماژول های مربوط به کش
  • ماژول های لاگین
  • پشتیبانی از ASP.net 4.5 در کنار ASP.net 3.5
  • پشتیبانی از پروتکل WebSocket
  • پشتیبانی از SNI
  • کنترل مصرف CPU به ازای هر برنامه
  • ساسپند کردن سایت های IDLE جهت افزایش بازدهی سرور
  • و…

باید به این مورد توجه داشته باشید که زمانی باید از IIS استفاده کنید که برنامه مورد نظر شما جهت سرویس دهی از خانواده .net باشد. راه اندازی این وب سرور برای زبان های PHP و دیگر زبان های غیر مایکروسافتی کاملا اشتباه بوده و ممکن است شما را در اینده با مشکلات زیادی مواجه کند. باز هم این نکته را ذکر میکنم که پشتیبانی IIS فقط برای مکمل بوده و تحت فشار و استرس کاری کم قابل استفاده میباشد.

مقاله ارائه شده جهت اشنایی شما با وب سرور های پر کاربرد ارائه شد تا اندکی با وب سرور و برند های ان اشنایی پیدا کنید. توچه داشته باشید مفاهیم در کنار تجربه بهترین انتخاب را برای شما رقم خواهد زد. آخرین آمار استفاده از وب سرور ها در سال ۲۰۱۶ در تصویر زیر قابل مشاهده میباشد.

تعداد زیادی وب سرور تولید و در حال استفاده می باشد که میزان کاربران ان کمتر از ۰.۱% است.

  • Zope
  • Gunicorn
  • WEBrick
  • Jetty
  • Kangle
  • Zeus
  • Thin
  • Resin
  • BaseHTTPServer
  • Tornado
  • Yahoo Traffic Server
  • Monkey
  • Mongrel
  • Cherokee
  • Roxen
  • Paste WSGI HTTP Server
  • AOLserver
  • CherryPy
  • Hiawatha
  • IceWarp
  • SAP J2EE Engine
  • Abyss
  • H2O
  • WebToB
  • WebSTAR
  • KomHttpServer
  • Twisted
  • Yaws
  • NaviServer
  • Jexus
  • WebHare
  • RaidenHTTPD
  • Orion
  • Xitami
  • AllegroServe
  • nxweb
  • CouchDB
  • Misultin
  • Hunchentoot
  • G-WAN
  • Barracuda Server
  • Caudium
  • Mathopd
  • Virtuoso
  • Comanche
  • FAPWS
  • TUX
  • Ada Web Server
  • Lwan
  • Mongrel2
  • Tntnet
  • Trifork
  • Wildcat
  • Blazix
  • Noelios Restlet Engine
  • Swazoo
  • Tcl-Webserver
  • WebSiphon

همینک دیدگاه خود را برای ما بنویسید!