وب سرور (Web Server) چیست؟ معرفی بهترین وب سرورها
What is a Web Server? Introducing the Best Web Servers
شروع پاندمی کرونا، یکی از جمله دلایلی بود، که موجب شد شاهد رشد چشمگیر سایتهای ایرانی در بازه سالهای ۱۳۹۹ الی ۱۴۰۰ باشیم. همین مسئله موجب شد که شرکتهای ارائه دهنده خدمات میزبانی، همچون نت افراز، دست به اقدامات تبلیغاتی گستردهای بزنند، تا بتوانند سهم بیشتری از بازار را به دست بیاورند. در این میان، یکی از مسائلی که همواره شرکتهای هاستینگ، بر آن تاکید داشتند و سعی میکردند که از آن به عنوان یکی از نقاط قوت خود بهره ببرند، مسئله وب سرور (Web Server) بود.
وب سرور، یکی از اصلیترین اجزای سرور است، که وظیفه پاسخگویی به کاربران از طریق کنار هم قرار دادن اجزای یک صفحه را بر عهده دارد. برای اینکه این مسئله راحتتر در ذهن شما جای بگیرد، از یک مثال استفاده میکنیم. فرضا اگر سایت شما یک رستوران باشد، وب سرور همانند سرآشپز رستوران خواهد بود. همانطور که یک سرآشپز، مواد اولیه غذا را در کنار هم قرار میدهد و نهایتا در یک ظرف به شما ارائه میکند، Web Server نیز، اجزای مختلف یک برگه وب را جمع آوری کرده و نهایتا در یک برگه وب به شما ارائه میکند.
اگر با خواندن این مقدمه مشتاق شدهاید که اطلاعات بیشتری در رابطه با وب سرورهای مختلف به دست آورید تا انتهای این نوشته با ما در نت افراز بلاگ همراه باشید.
وب سرور چیست و چه وظیفهای دارد؟
پیش از هرچیز باید عنوان کنیم که Web Server، ماهیتی نرم افزاری دارد. یعنی یک قطعه نیست، که با اتصال آن به سرور، بگوییم که وب سرور نصب کردهایم. بلکه باید همچون یک نرم افزار، آن را نیز بر روی سیستم عامل سرور نصب کرد.
همان طور که در مثال قبل اشاره کردیم، وب سرور، رابط میان کاربر و سایت است. برای فهم بهتر این رابطه، باید با مسیر نمایش یک صفحه در مرورگر آشنا باشید.
به عنوان مثال، زمانی که شما در مرورگر خود، آدرس سایت نت افراز را، وارد میکنید:
netafraz.com
درخواست شما برای دریافت اطلاعات مربوط به صفحه اصلی سایت، به دامنه سایت ارسال میشود. پس از این مرحله، درخواست شما به DNS server ارجاع داده میشود تا IP مربوط به سرور سایت را دریافت کند. چراکه هر سایتی، به یک IP اشاره میکند که به وسیله آن میتوانید به سرور سایت دسترسی پیدا کنید. در این مرحله درخواست شما به سرور میرسد و توسط Web Server مورد پردازش قرار میگیرد. در نهایت پاسخ درخواست شما در قالب یک صفحه HTML همراه با اطلاعاتی دیگر تحت پروتکل HTTP (یا HTTPS) به مرورگر شما ارسال خواهد شد.
اکنون که با وظیفه وب سرور آشنا شدهایم، دوباره به مثال رستوران باز میگردیم. این بار میخواهیم اهمیت استفاده از یک Web Server خوب را بررسی کنیم.
چرا باید در انتخاب وب سرور دقت کنیم؟
همان طور که اشاره کردیم، سرآشپز (وب سرور)، با دریافت سفارش (درخواست کاربر)، اقدام به آماده کردن سفارش (پیادهسازی صفحه Html) میکند.
اما در این مسیر، یک سری متغیرها وجود دارد!
اولین و مهمترین نکته، سرعت عمل سرآشپز است. همانطور که سر آشپزها در دنیای واقعی سرعت عمل یکسانی ندارند، وب سرورها نیز، با سرعت یکسانی کار نمیکنند. این نکته بسیار حائز اهمیت است، چراکه بهرهمندی از یک Web Server مناسب، موجب ارتقای سرعت سایت شما میشود.
مسئله بعدی که بسیار کم شاهد آن هستیم و تیم مدیریت سرور نت افراز، برای اولین بار در سیستم هاستینگ اشتراکی کشور، این سیستم را پیاده سازی کرده است، مسئله استفاده از دو وب سرور میباشد. توضیح این مسئله کمی طولانیست، برای همین در بخش بررسی وب سرورهای نصب شده بر روی سرویسهای میزبانی نت افراز، بیشتر به آن میپردازیم.
آیا وب سرور، همان وب سرویس است؟
یکی از متداولترین اشتباهات کاربران، این است که فکر میکنند میان وب سرور و وب سرویس، تفاوتی وجود ندارد. اما قطعا اینطور نیست. همان طور که پیش از این اشاره کردیم، Web Server برگههای وب را سِرو (Serve) میکند اما، وب سرویس قادر به انجام این کار نیست. وب سرویس به وسیله Web Server مورد استفاده قرار میگیرد و همین مسئله موجب میشود که با حذف وب سرور، وب سرویس نیز از دسترس خارج شود.
به عبارتی اگر به مثال رستوران و سرآشپز برگردیم، وب سرویس، نقش دستیار سرآشپز را ایفا میکند. تا زمانی که سرآشپز نباشد، دستیار سرآشپز، نمیتواند کاری را پیش ببرد.
در ادامه تفاوتهای Web Server و Web Service را به شکل بهتری ذکر کردهایم.
وب سرور:
- یک نرم افزار است، که برای اجرا باید بر روی یک سرور مجازی یا فیزیکی نصب شود.
- وب سرور برای جابجایی دادهها تنها از پروتکل HTTP (یا HTTPS)، استفاده میکند.
- Web Server، تنها درخواستهای HTTP یا HTTPS را دریافت میکند و پاسخ هر درخواست را تنها به صورت HTTP یا HTTPS باز میگرداند.
- وبسرور به صورت پیشفرض بر روی پورت ۸۰ و به صورت امن بر روی پورت ۴۴۳ اجرا میشود.
وب سرویس:
- یک ابزار کاربردی (Application) است، که در بستر وب سرور اجرا میشود.
- وب سرویس قادر به پیادهسازی صفحات HTML نیست، و دیتای خروجی را به شکلهای XML ،SOAP و یا JSON باز میگرداند.
- هر وب سروری را با توجه به سیستم عاملِ سرور میتوان نصب کرد. اما هر وب سرویسی را نمیتوان بر روی هر Web Server نصب کرد.
در ادامه نگاهی به بهترین و رایج ترین وب سرورهای حال حاضر دنیای وب خواهیم داشت.
بهترین وب سرورهای حوزه وب
نهایتا به مهمترین قسمت این نوشته میرسیم. در ادامه رایجترین وب سرورهای حال حاضر دنیا را معرفی و مقایسه خواهیم کرد و همچنین بررسی میکنیم که هر Web Server با چه هدفی ارائه شده و برای چه استفادهای مناسبتر است.
Nginx
شاید بتوان انجینکس (Nginx) را رایجترین وب سرور حال حاضر دنیای وب دانست. این Web Server، متن باز است. به زبان سادهتر، رشته کدهای استفاده شده برای ساخت این وب سرور در دسترس همگان قرار دارد و هر شخصی میتواند به این web server به صورت رایگان دسترسی داشته باشد. رایگان بودن Nginx در کنار سرعت مناسب آن، سبب شده که این سرویس دهنده وب، یکی از محبوبترین وب سرورهای بازار باشد. جالب است بدانید که از سال ۲۰۰۴ تاکنون این وب سرور در حال توسعه و بهروزرسانیست و همچنان نیز، توسعه آن ادامه دارد.
این Web Server بر روی معروفترین سیستم عاملها همچون لینوکس، ویندوز و حتی مک قابل نصب است و میتوان از آن استفاده کرد. سرعت کافی، حجم کم، استفاده بهینه از زیرساختهای سرور و نهایتا رایگان بودن انجینکس، نقاط قوت اصلی این Web Server است.
Apache
شاید تعجب کنید اگر بدانید که Web Server آپاچی (Apache) در سال ۱۹۹۵ معرفی شده و همچنان در لیست محبوبترین وب سرورهای حوزه وب قرار دارد. این سرویس دهنده وب، تنها بر روی سیستم عاملهای بر پایه لینوکس و ویندوز قابل نصب است. Web Server آپاچی در زمان سرو محتوای داینامیک عملکرد بسیار خوبی دارد. اما این مسئله در رابطه با محتوای استاتیک متفاوت است. امروزه بسیار کمتر از گذشته از وب سرور آپاچی استفاده میشود، چراکه در شرایط متفاوت از سرعت کافی برخوردار نیست و با افزایش مخاطبین سایت، ممکن است سایت کاربر را تحت تاثیر عملکردِ منفی خود قرار دهد. اما ترکیب این Web Server با وب سرور NginX، میتواند یک ترکیب بسیار عالی باشد.
در رابطه با ترکیب وب سرور آپاچی و انجینکس، در بخش بعد بیشتر صحبت خواهیم کرد.
LiteSpeed
شاید اصلی ترین تفاوت وب سرور لایت اسپید (Litespeed)، با دو سرویس دهنده وب قبلی، متن بسته بودن آن باشد. این مسئله بدین معناست که برای استفاده از وب سرور Litespeed، باید مبلغی را به صورت دورهای به شرکت سازنده Web Server پرداخت کنید. چراکه برای استفاده از این Web Server، نیاز به مجوز استفاده (license) از آن را دارید. کلیه حقوق وب سرور لایت اسپید، متعلق به شرکت LiteSpeed Technologies میباشد.
نسخه اولیه این سرویس دهنده وب، در سال ۲۰۰۳ عرضه شده و به صورت مرتب در حال توسعه و بروزرسانی میباشد. نکته مهم دیگر در رابطه با وب سرور LiteSpeed این است که، این وب سرور تنها بر روی سیستم عاملهای بر پایه لینوکس قابل نصب است. بنابراین کاربران توسعه دهنده زبانهای سمت ویندوز، قادر به استفاده از این Web Server نمیباشند.
برخی نقاط قوت و ضعف وب سرور های رایج:
مزایای وبسرور Nginx:
- کاملا رایگان و متن باز
- سرعت بسیار بالا در پاسخگویی درخواستها
- مصرف پایین RAM و منابع سرور
- حجم کم و نصب ساده وب سرور
- قابلیت پشتیبانی بر روی سخت افزارهای قدیمی
معایب وبسرور Nginx:
- عدم پشتیبانی از کدهای htaccess.
- نیاز به اعمال تنظیمات دستی در Web Server جهت مدیریت وب سرویس
- نیاز به دانش فنی بالاتر جهت مدیریت و کانفیگ وبسرور نسبت به بقیه وبسرورها
- عدم سازگاری کامل با تمامی کنترل پنلهای رایج مدیریت وب هاستینگ
- نیاز به نصب و راه اندازی یک هندل مستقل جهت اجرای کدهای php
مزایای وبسرور Apache:
- کاملا رایگان و متن باز
- رایجترین و Web Server پیش فرض در اکثر کنترل پنلهای رایج
- بسیار Stable و با ثبات
- راهاندازی آسان نسبت به وب سرورهای دیگر
- سازگار با انواع کنترل پنل رایج برای مدیریت وب هاستینگ
- قابلیت نصب ماژولهای جانبی جهت بهبود سرعت و امنیت بیشتر
معایب وبسرور Apache:
- مصرف نسبتا زیاد منابع رم و پردازنده سرور
- سرعت نسبتا کمتر نسبت به دو وب سرور دیگر در سرورهای با ترافیک بالا
- انتشار آپدیتها و وصلههای امنیتی در زمان دیرتر نسبت به وب سرورهای دیگر
مزایای LiteSpeed:
- دارای کنترل پنل جهت مدیریت آسان وبسرور به صورت گرافیکی
- سرعت بسیار مناسب در صفحات سایتها
- دارای هندل اختصاصی php جهت اجرای اسکریپهای php
- دارای Cache System اختصاصی جهت caching صفحات و فایلها
- مصرف منابع نسبتا خوب و کم
- مدیریت آسان برای مانیتورینگ و مدیریت تنظیمات وب سرور بصورت گرافیکی
- کاملا سازگار با htaccess. و کدهای mod_rewrite مشابه apache
- سازگاری با کنترل پنلهای رایج وب هاستینگ و همچنین امکان نصب بصورت مستقل
معایب LiteSpeed:
- عدم متن باز بودن و غیرقابل گسترش بودن
- رایگان نمیباشد و برای استفاده نیازمند تهیه لایسنس میباشد
- هزینه نسبتا بالای لایسنس برای کاربران ایرانی
- عدم پشتیبانی از امکانات زیاد جهت مدیریت بیشتر وب سرور
- عدم پشتیبانی از ماژول های مستقل جهت بهبود سرعت و امنیت وب سرور
آیا سرعت وب سرور LiteSpeed، بیشتر از سایر وب سرورهاست؟
بر اساس تستهای صورت گرفتهی زیادی، وب سرور لایت اسپید، از سرعت بیشتری نسبت به وب سرورهای Apache و Nginx برخوردار است. در تصویر زیر، میتوانید مقایسه این سرویس دهنده وب را با سرورهای Apache و Nginx را برای مولفههای متفاوت بررسی کنید.
این مسئله در گذشته مقداری با ابهام همراه بود، اما بنچمارکهای مختلف و تستهای متفاوت، اکنون با قطعیت ثابت کردهاند که سرو یک صفحه وب، با استفاده از وب سرور لایت اسپید، سریعتر از سرو همان صفحه، با وب سرورهای Apache و Nginx خواهد بود.
همان طور که در تصویر بالا مشاهده میکنید، یک سایت را بر روی سه سرور مجزا با منابع یکسان، پیاده سازی کردهایم. ساب دامنه برای هر Web Server، معادل نام وب سرور تنظیم شده است.
وب سرورهای استفاده شده در نت افراز
همان طور که در صفحه معرفی سرویسهای میزبانی قابل مشاهده است، ما در تیم نت افراز، از هر ۳ سرویس دهنده وب گفته شده استفاده میکنیم.
سرویس میزبانی | وب سرور |
میزبانی وب اقتصادی | Nginx + Apache |
میزبانی وب استاندارد | Nginx + Apache |
میزبانی وب حرفهای | LiteSpeed |
میزبانی دانلود | Nginx |
سرویس نمایندگی | Nginx + Apache |
پس از ورود به صفحه معرفی هاستهای اقتصادی یا سرویسهای میزبانی استاندارد لینوکس، میتوانید مشخصات کامل هر سرویس را مشاهده نمایید. اما تاکنون به آیکن “علامت سوال” قرار گرفته در کنار هر مولفه توجه کردهاید؟
ما برای راحتی بیشتر کاربران تازهکار، برای هر مولفه توضیحات مختصری ارائه کردهایم، که موجب میشود کاربر بتواند با خیالی راحتتر و شناختی بهتر، نسبت به تهیه سرویس مدنظر خود اقدام کند.
اگر در ستون سرویسها به سراغ مولفه “سرویس دهنده وب” بروید و بر روی آیکن علامت سوال، در کنار آن کلیک کنید، با متنی مشابه زیر روبهرو خواهید شد:
توضیحات ارائه شده در این پنجره پاپ آپ، کامل و گویاست. اما یک سوال وجود دارد. چرا در نت افراز برای سرویسهای استاندارد و اقتصادی، از ترکیب وب سرورهای آپاچی و انجینکس استفاده میشود؟
سرویسهای استاندارد، برای استارتآپها، فروشگاههای اینترنتی نوپا، وبلاگنویسها و… بهترین گزینه است. چراکه در ابتدا بازدید سایتها زیاد نیست و مدیریت سرمایه برای یک کسب و کار نوپا، اهمیت فوقالعادهای دارد. ترکیب وب سرورهای Apache و Nginx، حاصل تجربه و تحقیق تیم توسعه و مدیریت سرورها در نت افراز است. بیایید در این قسمت کمی تخصصیتر صحبت کنیم.
استفاده همزمان از وب سرورهای Apache و Nginx
آپاچی و انجینکس، به گونهای برنامه نویسی شدهاند، که میتوانند به صورت پروکسی سرور با یکدیگر کار کنند. اما از این قابلیت میتوان به شیوهای بهتر استفاده کرد. چیزی که امروز تحت عنوان Reverse Proxy شناخته میشود. در این سیستم، وب سرور Nginx، به صورت Reverse Proxy، در لایهای جلوتر از وب سرور Apache قرار میگیرد. با این کار، هر درخواست ارسال شده از طریق مرورگر، ابتدا در دسترس Web Server انجینکس قرار میگیرد و همین نکته، مهمترین دلیل ترکیب این دو Web Server است.
در سیستم Reverse Proxy، درخواست مروگر پس از ارسال به وب سرور Nginx، در این وب سرور تحلیل میشود. چنانچه درخواست ارسال شده برای یک محتوای استاتیک باشد، خودش پاسخ درخواست را آماده و ارسال میکند. اما اگر درخواست ارسال شده، برای یک محتوای داینامیک باشد، این درخواست به سمت وب سرور آپاچی هدایت خواهد شد، و پاسخ آن به وسیله Apache، به صورت یک محتوای استاتیک به وب سرور انجینکس باز میگردد.
انتقال درخواست به وب سرور آپاچی و بازگشت مجدد آن به وب سرور Nginx، موجب میشود که این سیستم، پروکسی معکوس (Reverse Proxy) نام بگیرد. لازم است بدانید که به دلیل عدم ارتباط مستقیم Web Server آپاچی با مروگر کاربر، تشخیص استفاده از این سیستم برای کاربران عادی غیرممکن است و تنها کاربران ماهر حوزه شبکه، متوجه استفاده از این سیستم میشوند.
سخن پایانی
در این مقاله سعی کردیم که به بهترین شکل، به بررسی مبحث Web Server بپردازیم. از معرفی رایجترین وب سرورها گرفته، تا سیستم عاملهای مورد استفاده برای هر سرویس دهنده وب را عنوان کردیم. همان طور که مشاهده نمودید، هر Web Server با توجه به امکانات و مزایا و معایبی که دارد، برای استفاده خاصی مورد استفاده قرار میگیرد. همچنین به بررسی وب سرورهای استفادهشده بر روی سرویسهای میزبانی نت افراز پرداختیم. اکنون، چنانچه تصمیم به خرید یک هاست مناسب دارید، میتوانید با آگاهی بیشتری نسبت به تهیه سرویس میزبانی خود اقدام کنید.
نهایتا امیدواریم که از این نوشته بهره کافی را برده باشید. هدف ما در تیم نت افراز، پاسخگویی به سوالات و برطرف کردن مشکلات اولیه شماست. پس چنانچه سوالی در رابطه با این نوشته دارید، از طریق بخش ارسال نظرات در پایین این برگه با ما در ارتباط باشید.
موفقیت همراه راهتان باد.
https://www.netafraz.com/blog/what-is-a-web-server/