وب سرور چیست؟
وب سرور یکی از اجزای کلیدی در دنیای اینترنت است. تمام وبسایتها از وب سرور برای ارائه خدمات به کاربران استفاده میکنند و کاربران در هر روز بارها از خدمات آن بهره میگیرند. وب سرور را میتوان ترکیبی از سختافزار و نرمافزار در نظر گرفت که در کنار یکدیگر، صفحات وب را در دسترس کاربران قرار میدهند. اگر میخواهید بدانید که وب سرور چیست و چطور کار میکند، در ادامه این مقاله همراه ما باشید.
در دنیای تکنولوژی و وب با اصطلاحات و واژگان زیادی روبرو هستیم که شباهت زیادی به یکدیگر دارند. به احتمال فراوان بارها واژههای صفحه وب (webpage)، وبسایت (website) و وب سرور (web server) را شنیدهاید و تفاوت بین آنها را میدانید. در این مطلب میخواهیم نگاهی ویژه به وب سرور بیندازیم.
وب سرور چیست؟
وب سرور در سادهترین حالت، صفحات یک وبسایت را در اختیار کاربران قرار میدهد. این صفحه میتواند یک فایل ساده HTML یا ترکیبی از اطلاعات مختلف از منابع متعدد باشد. در اکثر مواقع برای راهاندازی یک وبسایت یا وب اپلیکیشن در اینترنت به وب سرور نیاز خواهید داشت.
متداولترین کاربرد این سرور، تأمین فایلهای مورد نیاز برای بارگیری وبسایت در مرورگر است. بهعنوان مثال زمانی که آدرس xaas.ir را در نوار آدرس مرورگر خود وارد میکنید، درخواستی از سمت شما روی اینترنت ارسال میشود. این درخواست از چند لایه عبور میکند که یک یا چند مورد از آنها وب سرور خواهد بود. این سرور به درخواست شما پاسخ داده و صفحه هوم ابر زس را برای شما آماده میکند. در نهایت این صفحه روی مرورگر شما به نمایش درمیآید.
بیشتر صفحات وب مدرن، مجموعهای از منابع مختلف را گردآوری کرده و به کاربر نشان میدهند. وب سرور در اینجا نقش واسط بین فرانتاِند (بخش ظاهری قابل مشاهده توسط کاربر) و بکاِند (قسمت پشت صحنه شامل پایگاه داده و عناصر دیگر) را ایفا کرده و منابعی مانند صفحات HTML، فایلهای CSS و اطلاعات JSON را تأمین میکند. تمام این اطلاعات بهشکل پویا و در لحظه تولید شده و به دست کاربر میرسند. بدین ترتیب ممکن است تجربه هر کاربر از باز کردن یک وبسایت با دیگر کاربران تفاوت داشته باشد.
همانطور که گفتیم وب سرور را میتوان بهشکل نرمافزاری، سختافزاری یا ترکیب آنها در نظر گرفت. در کل ارتباط کاربر و سرور میزبان یک وبسایت از طریق این سرور برقرار میشود. در ادامه کاربردهای معمول وب سرور را مرور میکنیم.
کاربردهای وب سرور چیست؟
وب سرور درخواستهای ارسال شده روی اینترنت از طریق پروتکلهای HTTP یا HTTPS را مدیریت میکند و به آن «سرور HTTP» نیز میگویند. تفاوت این نوع سرور و دیگر انواع سرور در همین قابلیت تخصصی برای مدیریت درخواستهای HTTP و HTTPS است؛ بنابراین از نظر کارکرد با «اپلیکیشن سرور» و سرورهای دیگر پروتکلها تفاوت دارد. در فهرست زیر بعضی از کاربردهای متداول این نوع سرور را میبینید.
- تأمین فایلهای HTML و CSS و جاوا اسکریپت
- تأمین تصاویر و ویدیوها
- مدیریت پیامهای خطای HTTP
- مدیریت همزمان درخواستهای کاربران
- اصلاح یا بازنویسی آدرسهای URL
- پردازش و تأمین محتوای پویا
- فشردهسازی محتوا برای افزایش سرعت و کاهش حجم اطلاعات
- استفاده از حافظه موقت مرورگر برای ذخیرهسازی محتوای ایستای وبسایت
این فهرست تنها بخشی از کاربردهای وب سرور را نشان میدهد. وب سرور به نوع داده خاصی محدود نیست و مثلا میتواند در پاسخ به درخواستهای API وب، اطلاعات را با فرمتهایی مانند JSON در اختیار کاربر قرار دهد.
ویژگیهای وب سرور چیست؟
در ادامه مطلب وب سرور چیست میخواهیم بدانیم که این سرور چه ویژگیهایی دارد. وب سرور برای رسیدن به هدف اصلی خود یعنی تأمین محتوا روی اینترنت به چند ویژگی اساسی نیاز دارد که بین آنها میتوان به سرعت، دسترسپذیری و قابلیت اطمینان اشاره کرد. یک سرور وب کارآمد باید ویژگیهای زیر را داشته باشد:
- آپتایم (Uptime): به زمان فعالیت و عملیاتی بودن سرور اشاره دارد. وبسایتها باید در تمام شرایط آنلاین باشند و به کاربران سرویس بدهند. بنابراین هرچه درصد آپتایم بالاتر باشد به این معنی است که تضمین بالاتری در دسترسی به سرور داده میشود. آپتایم به پایداری و پیشبینی پذیری نیز مرتبط است. زمانی که کاربر آدرس URL را در مرورگر خود وارد کرده یا روی یک لینک داخل وبسایت کلیک میکند، باید همیشه و در سریعترین زمان ممکن به صفحه موردنظر برسد. تنها در صورتی میتوان برای آپتایم استثناء قائل شد که سرور با اطلاع قبلی و بهمنظور بهروزرسانی یا عملیات تعمیر و نگهداری از دسترس خارج شده باشد. وب سرور نامطمئن و ناپایدار، تجربه دلچسبی در اختیار کاربر قرار نمیدهد.
- سرعت: صفحات وبسایت شما باید در سریعترین زمان ممکن بارگذاری شوند. کاربران دقیقا چنین انتظاری از وبسایت شما دارند و اگر این انتظار برآورده نشود، کاربر را از دست خواهید داد. اگر زمان لود صفحه بسیار طولانی باشد، کاربران رغبت زیادی برای باز کردن صفحات داخلی یا مراجعه دوباره به وبسایت نخواهند داشت.
- همزمانی (Concurrency): این معیار به مدیریت همزمان درخواستهای متعدد در لحظه اشاره دارد. تعداد زیاد کاربرانی که در لحظه به یک وبسایت مراجعه میکنند را میتوان بهمنزله موفقیت آن وبسایت تلقی کرد اما اگر همین کاربران با زمان لود طولانی و حتی از کار افتادن وبسایت مواجه شوند، موفقیت بهسرعت به شکست تبدیل خواهد شد. سرور فیزیکی یا سرور مجازی معمولا از نظر ظرفیت حافظه رم (RAM) و توان پردازش با محدودیت مواجه هستند و سرور باید بتواند به بهینهترین شکل ممکن از این منابع استفاده کند.
- مقیاسپذیری (Scalability): این ویژگی به قابلیت ارتقاء توان سرورهای موجود یا افزایش تعداد سرورها اشاره دارد؛ قابلیتی که سرور های ابری ارائه میدهند. با رشد کسبوکار یا مخاطبین وبسایت، باید بتوانید منابع یا تعداد سرورهای خود را افزایش دهید.
- سهولت در راهاندازی: راهاندازی و اجرای سریع یک پروژه در فضای کسبوکار کنونی اهمیت بسیار زیادی دارد. بنابراین فرایند نصب و راهاندازی سرور وب باید به اندازه کافی ساده و سرراست و تکرار پذیر باشد.
- مستندسازی: وب سرورها محصولاتی نسبتا پیچیده هستند. البته راهاندازی اولیه آنها برای شروع کار معمولا چندان سخت نیست اما نیازهای شما بهتدریج افزایش خواهد یافت. بنابراین باید سروری را انتخاب کنید که مستندات خوبی داشته باشد و بتواند سؤالات شما را بهسادگی پاسخ دهد.
- پشتیبانی توسعهدهنده: اگر توسعهدهندگان اصلی یک محصول به پروژه خودشان متعهد نیستند، شما نیز نباید پروژه خود را روی محصول آنها اجرا کنید. تعهدات توسعهدهنده شامل پشتیبانی درازمدت نرمافزاری و پشتیبانی سریع برای رفع باگها و ایرادات مهم است.
- پشتیبانی جامعه کاربران: تیم توسعهدهنده معمولا اکثر مسائل اساسی را مدیریت میکند اما آنچه به یک محصول نرمافزاری اعتبار بیشتری میدهد، جامعه کاربران آن است. در پروژههای اپنسورس (Open Source) تمام کاربران میتوانند در توسعه پروژه و رفع نواقص احتمالی آن مشارکت داشته باشند.
معماری وب سرور چیست؟
ویژگیهایی که در قسمت قبل به آنها اشاره کردیم بین تمام وب سرورها مشترک هستند اما برای انتخاب وب سرور مناسب باید به موارد دیگری نیز توجه کرد که به آنها «معماری وب سرور» نیز گفته میشود. این موارد عبارتاند از:
- ویژگیهای فیزیکی سرور مانند حافظه رم، فضای ذخیرهسازی و سرعت پردازش
- کارآیی (تأخیر شبکه، توان عملیاتی داده و مواردی از این قبیل)
- پشتیبانی از پلتفرمها (مانند PHP، داتنت، Node.js و غیره)
- سیستمعامل (لینوکس یا ویندوز)
- ارتباطات (حالتهای ارتباط شبکه، پشتیبانی از کاربران و غیره)
- انواع برنامههای کاربردی
این ویژگیها در کنار یکدیگر، معماری وب سرور را تشکیل میدهند و در انتخاب نهایی سرور تأثیر دارند.
پر طرفدارترین انواع وب سرور چیست؟
وب سرورهای متعددی در دنیای اینترنت وجود دارند که بین آنها، دو نمونه اپن سورس یعنی آپاچی (Apache) و انجیناکس (Nginx) در صدر جدول محبوبترینها قرار میگیرند. طبق جدیدترین آمار وبسایت نتکرفت (Netcraft) در ژانویه سال ۲۰۲۳ میلادی، انجیناکس با ۲۶ درصد سهم از بازار، پرکاربردترین وب سرور دنیاست و بعد از آن آپاچی با ۲۰ درصد سهم بازار در رده دوم قرار دارد.
وب سرور آپاچی (Apache)
اولین نسخه از وب سرور آپاچی در سال ۱۹۹۵ منتشر شد. این وب سرور با نام رسمی «سرور HTTP آپاچی» نرمافزاری اپنسورس و رایگان است که تحت قوانین مجوز آپاچی (Apache License) و از سوی «بنیاد نرمافزار آپاچی» عرضه میشود. آپاچی را بیشتر روی توزیعهای لینوکس میبینیم اما نسخههای جدید آن قابلیت نصب روی ویندوز را نیز دارند. یکی از مهمترین ویژگیهای وب سرور آپاچی، سازگاری با بسیاری از سیستمهای مدیریت محتوا (CMS یا Content Management Systems)، اکثر زبانهای برنامهنویسی و فریمورکهای وب است.
وب سرور انجیناکس (Nginx)
وب سرور انجیناکس (Nginx) تقریبا ۱۰ سال بعد از آپاچی و در سال ۲۰۰۴ میلادی منتشر شد. انجیناکس نیز یک نرمافزار رایگان و اپنسورس است که تحت مجوز FreeBSD عرضه میشود. یکی از مهمترین کاربردهای وب سرور انجیناکس، استفاده بهعنوان لود بالانسر (Load Balancer) برای تقسیم بار درخواستهای HTTP و بهبود کارایی، مقیاسپذیری و پایداری وبسرویسها است.
ایگور سیسویف (Igor Sysoev) خالق انجیناکس، این وب سرور را برای رفع مشکل C10K توسعه داد. در آن زمان یعنی سال ۲۰۰۲ اکثر وب سرورها نمیتوانستند بیش از ۱۰ هزار کانکشن همزمان را مدیریت کنند. انجیناکس تقریبا با تمام انواع سیستمعامل مبتنی بر یونیکس سازگار است اما برای نصب روی ویندوز با محدودیتهایی مواجه میشود.
بیشتر بخوانید: NGINX چیست؟
آپاچی یا انجیناکس؛ کدامیک بهتر است؟
آپاچی و انجیناکس بهعنوان دو وب سرور اصلی دنیای اینترنت، هرکدام مزایا و معایبی دارند که توضیح آنها از حوصله این مطلب خارج است. با این حال میتوان بهطور خلاصه در این مورد صحبت کرد.
مهمترین تفاوت بین آپاچی و انجیناکس این است که انجیناکس معماری مبتنی بر رویداد (event) دارد و میتواند چندین درخواست را در یک رشته پردازشی (Thread)، مدیریت کند. آپاچی بر اساس معماری مبتنی بر فرایند (process) کار میکند و بهازای هر درخواست، یک رشته پردازشی (Thread) ایجاد میکند.
آپاچی بهترین گزینه برای فضاهای هاستینگ اشتراکی محسوب میشود. آپاچی امکان دسترسی روت برای تغییر فایل پیکربندی اصلی را فراهم میسازد و بدین ترتیب کاربران میتوانند بخشی از ویژگیهای سرور را به دلخواه خود تنظیم کنند. مهمترین عیب آپاچی هم استفاده زیاد از منابع سیستم و بهخصوص حافظه رم سرور است.
انجیناکس در زمینه مدیریت درخواستها برای محتوای ایستا، عملکرد بهتری نسبت به آپاچی دارد و میتواند درخواستهای تعداد بسیار زیادی از کاربران را زیر فشار سنگین پاسخ دهد. بنابراین انجیناکس را میتوان یکی از بهترین گزینهها برای سایتهایی با حجم ترافیک بالا در نظر گرفت. همچنین انجیناکس را میتوان در نقشهای دیگری مانند پراکسی معکوس (Reverse Proxy) و لود بالانسر نیز استفاده کرد.
با این حال یکی از معایب انجیناکس، پشتیبانی نکردن از محتوای پویا بهشکل پیشفرض است. انجیناکس برای مدیریت درخواستهای محتوای پویا باید تمامی درخواستها را به سرور اپلیکیشن بکاند ارسال کند.
سایر انواع دیگر وب سرور چیست؟
در کنار دو بازیگر اصلی بازار یعنی آپاچی و انجیناکس، نامهای دیگری نیز بهچشم میخورند که مهمترین آنها کلادفلر است. طبق آخرین آمار نتکرفت برای ژانویه ۲۰۲۳ و بین یک میلیون سایت پربازدید دنیا، کلادفلر با سهم ۲۱ درصدی بالاتر از آپاچی و انجیناکس قرار میگیرد. البته کلادفلر خدمات بسیار بیشتری از جمله محافظت در برابر حملات DDoS، مدیریت DNS و شبکه توزیع محتوا (CDN) را نیز ارائه میکند و به همین دلیل به انتخاب اصلی بسیاری از کسبوکارها تبدیل شده است. با این حال استفاده از خدمات کلادفلر رایگان نیست. علاوه بر کلادفلر که به یکی از محبوبترین سرویسهای دنیای وب تبدیل شده، چند وب سرور کاربردی دیگر نیز وجود دارند که در ادامه به اختصار به معرفی آنها میپردازیم.
سرویسهای اطلاعات اینترنتی مایکروسافت (IIS)
سرویسهای اطلاعات اینترنتی مایکروسافت که IIS نامیده میشود و مخفف عبارت «Internet Information Services» است، یکی دیگر از محبوبترینهای دنیاست و در ردهبندی ژانویه ۲۰۲۳ نتکرفت در یک میلیون سایت پربازدید دنیا در رده چهارم قرار گرفته است. مایکروسافت، IIS را با خانواده ویندوز سرور عرضه میکند. به دلیل پشتیبانی مایکروسافت، IIS با تمام نسخههای سیستمعامل ویندوز سازگار است.
IIS از پروتکلهای مختلفی مانند HTTP و HTTP/2 و HTTPS و FTP و SMTP و NNTP پشتیبانی میکند اما برخلاف دو نمونه محبوب دیگر یعنی آپاچی و انجیناکس، اپنسورس نیست.
لایتی (Lighttpd)
Lighttpd که «لایتی» خوانده میشود یکی دیگر از نمونههای اپن سورس است. لایتی معماری بسیار منعطف و در عین حال ایمنی دارد و برای کاربردهای خاصی طراحی شده که در آنها به کارآیی بسیار بالا و سرعت زیاد نیاز داریم. مهمترین ویژگی وب سرور لایتی، کارآیی و بهینگی عملکرد آن است تا بتوان از آن برای مدیریت حجم بالای درخواستها در سرورهایی با محدودیت منابع بهره برد.
سان جاوا سیستم
سان مایکروسیستمز (Sun Microsystems) بهعنوان یکی از قدیمیترین شرکتهای حوزه تکنولوژی نیز وب سرور مخصوص خود را به نام «وب سرور سان جاوا سیستم» عرضه میکند. این وب سرور روی ویندوز، سولاریس و HP-UX اجرا میشود و از فناوری صفحات جاوا سرور (JSP یا JavaServer Pages) و جاوا اسکریپت سمت سرور (SSJS یا Server-Side JavaScript) پشتیبانی میکند. از ویژگیهای محصول سان جاوا سیستم میتوان به پایداری، سهولت استفاده و امنیت بالا اشاره کرد. این وب سرور بیشتر برای وبسایتهای بزرگ یا متوسط استفاده میشود.
جیگسا (Jigsaw)
وب سرور جیگسا (Jigsaw) یک نمونه شیءگرا و کامل است که معماری پیشرفته آن با زبان جاوا نوشته شده و ویژگیهای متمایزی دارد. البته جیگسا در ابتدا برای اهداف آزمایشی توسعه یافته بود اما با توجه به کارآیی بالا، تصمیم به انتشار آن گرفته شد.
وب سرور لایتاسپید
وب سرور لایت اسپید (LiteSpeed) یکی از قدیمیترین نمونهها است که در سال ۲۰۰۳ منتشر شد و بهسرعت به یکی از محبوبترین گزینهها بدل گشت. لایت اسپید توسط شرکتی به همین نام توسعه یافته و البته نسخه اپن سورس هم دارد. به دلیل شباهت پیکربندی و معماری این وب سرور با آپاچی، ویژگیهای این دو نیز بسیار نزدیک به یکدیگر است. همچنین بهسادگی میتوانید فایلهای پیکربندی آپاچی را روی لایتاسپید بارگذاری کرده و لایتاسپید را جایگزین آپاچی کنید.
وب سرور Node.js
وب سرور Node.js بهدلیل توانایی اجرای کدهای جاوا اسکریپت خارج از مرورگر، محبوبیت بالایی پیدا کرده است. این وب سرور بهشکل اپن سورس عرضه میشود و با پلتفرمهای مختلف سازگار است. معماری این پلتفرم در قالب محیط زمان اجرای جاوا اسکریپت طراحی شده و توسعهدهندگان میتوانند از زبان جاوا اسکریپت برای نوشتن فرمان استفاده کنند. بعضی از ویژگیهای جذاب Node.js عبارتند از: اجرای بسیار سریع کدها بهخاطر استفاده از موتور جاوا اسکریپت V8 گوگل کروم و نیز مقیاسپذیری بسیار بالا در مقایسه با وب سرورهای قدیمی.
جمعبندی
در مقاله وب سرور چیست با یکی از اجزای بنیادی دنیای اینترنت آشنا شدیم. وب سرور یک نرمافزار کامپیوتری است که با استفاده از سختافزار سرور، محتوای وبسایت را در اختیار کاربران قرار میدهد. در واقع وب سرور را میتوان پل ارتباطی بین سرور و مرورگر کاربر در نظر گرفت. شما هر زمان که آدرس یک وبسایت را داخل مرورگر خود وارد میکنید، درخواستی به سمت وب سرور ارسال میکنید و در صورت دریافت پاسخ مناسب، وبسایت مورد نظر یا صفحه مورد درخواست شما در مرورگر به نمایش درمیآید. وب سرور انواع مختلفی دارد ولی دو وب سرور رایگان و اپن سورس آپاچی و انجیناکس بیشترین سهم را از این بازار در اختیار دارند.
با سرور ابری زس میتوانید وب سرور دلخواه خود (انجیناکس یا آپاچی) را روی سیستمعامل مورد نیاز خود نصب کنید. دیتاسنتر ابری نیز کاملترین سرویس زیرساخت ابری محسوب میشود که امکان راهاندازی چندین سرور را در اختیارتان میگذارد.