وب سرور چیست؟ آشنایی با انواع وب سرور و تفاوت آنها
در این مقاله میخوانید
آیا میدانید زمانیکه درخواستی را برای وبسایتها ارسال میکنید، چه اتفاقی میافتد و چگونه محتوای وبسایت به شما نمایش داده میشود؟ همه ما میدانیم که اطلاعات و فایلهای وبسایتها در سرویسدهندهای به نام سرور ذخیره میشود. اما این سرور فرزندی بهنام وب سرور دارد که وظیفه دارد اطلاعات وبسایتها و فایلهای درخواستی را به کاربران ارسال کند. وب سرورها انواع مختلفی دارند که عملکرد و ویژگیهای هر کدام با یکدیگر متفاوت است. اگر میخواهید با وب سرور و انواع آن آشنا شوید. با ما در این مقاله از آموزش برنامه نویسی و آموزش وب سرور همراه باشید تا شما را با مفهوم و عملکرد این سرویس کاربردی بیشتر آشنا کنیم.
وب سرور چیست؟
بهزبان ساده، وب سرور سرویس نرمافزاری است که در سطح شبکه و اینترنت به درخواست کاربران تحت پروتکل HTTP پاسخ میدهد. وظیفه اصلی WebServer نمایش محتوای وبسایت برای کاربران است. فرایند این عملیات بدینصورت است: دریافت درخواست از کاربران، ذخیره، بررسی و پردازش درخواستها و درنهایت تحویل یا نمایش محتویات مدنظر کاربران.
از دیگر وظایف وب سرور میتوان به پشتیبانی از پروتکلهای SMTP (برای ارسال یا دریافت ایمیلها) و FTP (تبادل فایلها) اشاره کرد. بهبیان بهتر، هر سرویسی که خدمات وبسایت، هاستینگ، اپلیکیشن و امثال اینها را ارائه دهد، به وب سرور نیاز دارد.
وب سرور درخواستهای کاربران را ازطریق مرورگر دریافت میکند و اطلاعات و فایلهای درخواستی را با سرعت فراوان به آنها تحویل میدهد. وب سرور یک پل ارتباطی بین سرور و کاربران است که برای نمایش محتوای وبسایتها استفاده میشود. درواقع، شما درخواست خود را در مرورگر وارد میکنید، درخواستتان توسط وب سرور پردازش میشود، اگر پاسخ مناسبی در سرور برای آن وجود داشته باشد، وب سرور پاسخ درخواستتان را بهسرعت برای شما ارسال میکند.
برای خرید سرور از پارس پک کلیک کنید!
از این مقاله میتوانید برای مدیریت سرویسهای خود استفاده کنید و اگر قصد خرید سرور پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، میتوانید جهت کسب اطلاعات بیشتر به لینک زیر مراجعه کنید.
نحوه کار وب سرور
اگر وب سرور را به دو قسمت نرمافزار و سختافزار تقسیم کنیم، قسمت نرمافزاری شامل بخشهای مختلف است که قسمت اصلی آن سرویسی به نام HTTP Server است که قابلیت درک درخواستهای HTTP و آدرسهای URLها را دارد و این درخواستها را دریافت و پردازش میکند. در طرف دیگر، بخش سختافزاری قرار دارد که آن را بهعنوان کامپیوتر در نظر میگیریم. در این کامپیوتر، نرمافزار اجرایی WebServer و تمامی فایلها (ازجمله تصویرها، ویدئوها، کدهای اسکریپت و برنامهها و…) ذخیره میشوند.
وب سرورها ازطریق نام دامنه یا آدرس IP در سطح شبکه و اینترنت دردسترس هستند و وظیفه آنها تحویل محتوای صحیح به کاربران است. زمانیکه کاربر در مرورگر خود آدرس URL را وارد میکند، درواقع درخواستش به سروری ارسال میشود که وب سرور روی آن قرار دارد. سپس، وب سرور درخواست کاربر را دریافت و پردازش و محتوای مدنظر کاربر را بهعنوان پاسخ به او ارسال میکند. درصورتیکه بخواهیم این روند را بهصورت مرحلهبهمرحله تفسیر کنیم، بدینترتیب خواهد بود:
- واردکردن آدرس URL در مرورگر بهوسیله کاربر
- ترجمه آدرس URL به آدرس IP بهوسیله سرویس DNS
- دریافت درخواست کاربر بهوسیله وب سرور (همان آدرس IP که سرویس DNS شناسایی کرده است)
- پاسخ وب سرور به درخواست کاربر (این پاسخ میتواند نمایش وبسایت یا ارائه فایل یا اجرای اسکریپت باشد. درصورت نبود پاسخ مناسب، پیغام خطا به کاربر نمایش داده میشود)
درادامه، باید با مباحث و اصطلاحات مرتبط با وب سرورها و عملکرد آنها آشنا شویم.
محتوای Dynamic و Static
محتوای وبسایتها به دو نوع استاتیک و داینامیک تقسیم میشود. محتوای استاتیک شامل اسکریپتهایی است که محتوایشان ثابت است و با هربار درخواست، پاسخ یکسان خواهد بود. محتوای داینامیک به پردازش نیاز دارد و ممکن است پاسخهای متفاوتی به کاربر ارسال شود. در این حالت، پس از دریافت درخواست از کاربر، به پردازش و گاه اتصال به دیتابیس و استخراج دیتا از آن نیاز است.
تفاوت اسکریپتهای Server-Side و Client-Side در چیست؟
در نوع Server-Side، اسکریپتی در سرور درخواست کاربر را اجرا میکند؛ یعنی درخواست کاربر را سرور میزبان دریافت و سپس پردازش میکند. دراینمیان، ممکن است عملیاتی روی دیتابیس هم انجام شود تا پاسخ مناسب به کاربر داده شود. برخی از ویژگیهای این حالت عبارتاند از:
- به تعامل پویا با سرور نیاز دارد.
- درخواستها را WebServer اجرا میکند.
- ازآنجاکه محتوای ارائهشده داینامیک است، دادهها باید پردازش و پاسخ به کاربر ارسال شود. در این صورت، بار پردازشی روی سرور افزایش پیدا میکند.
- در این حالت، زبانهای اسکریپت شامل PHP و Asp.net و Python هستند (در نوع Client-Side، تنها به مرورگر نیاز است تا با آن اسکریپتها در سیستم خودِ کاربر اجرا و پردازش شوند).
- به تعامل پویا با سرور نیازی نیست.
- اسکریپتها در سیستم خودِ کاربر اجرا میشوند.
- بار پردازشی روی سرور کاهش پیدا میکند.
- در این صورت، زبانهای برنامهنویسی شامل HTML و CSS و JavaScript هستند.
Proxy Server چیست؟
Proxy Server به سرویسی گفته میشود که ترافیک را بین سیستمها هدایت میکند؛ یعنی پروکسی سرور نقش مسیریابی و ایمنسازی ترافیک را بین شبکهها یا داخل شبکه ایفا میکند. بهعبارتدیگر، پروکسی سرور بهعنوان واسطهای بین کلاینتها و سرور عمل میکند.
Forward Proxy به سرویسی اطلاق میشود که درمقابل کلاینتها بهعنوان واسطه بین کلاینت و سرور قرار میگیرد و وظیفه اصلی آن پردازش درخواستها و ترافیک ارسالی کاربران است. از دیگر کاربردهای این سرویس میتوان به حفظ حریم شخصی کاربران و ناشناسماندن آنها در سطح اینترنت، امکان فیلترکردن ترافیک شبکه براساس محتوا، ثبت لاگهای ترافیک برای نظارت بر محتوا و ارتقای کارایی شبکه اشاره کرد.
Reverse Proxy درمقابل سرور بهعنوان واسط بین وب سرور و کلاینتها قرار میگیرد و درواقع، نقطه ورود برای تمام درخواستهای دریافتی به سرور است. Reverse Proxy تضمین میکند که کلاینت مستقیماً با WebServer ارتباط برقرار نکند. یکی از اهداف اصلی این سرویس حفظ تعادل درخواستهای دریافتی (Load Balancing) است.
از دیگر کاربردهای آن میتوان به ناشناسماندن سرور برای حفظ امنیت آن و کاهش حملههای DDOS و Stable Network Endpoint (نقطه پایانی شبکه پایدار) اشاره کرد. نقطه پایانی شبکه پایدار بدینمعنی است که با راهاندازی Reverse Proxy، امکان تغییر و جایگزینی سرور فراهم میشود تا درصورت خرابی یا قطعبودن وب سرور، شبکه و سرویسدهی با حداقل زمان Down Time مواجه باشد و بهراحتی امکان تغییر سرور میسر شود.
معروفترین و محبوبترین وب سرورها Nginx و Apache و Litespeed هستند. درادامه، ویژگیهای هریک را بررسی میکنیم.
۱. Apache HTTP
این وب سرور را شرکت Apache Software Foundation ارائه میدهد. آپاچی وب سروری رایگان و متنباز (Open Source) است و برای سیستمعاملهای مختلف ازجمله ویندوز، لینوکس، مک، یونیکس و سولار دردسترس قرار دارد. این WebServer که برای سالهای متمادی پرکاربردترین وب سرور بوده، محبوبیت خود را مدیون عواملی زیادی ازجمله رایگانبودن است. آپاچی روی تمامی سیستمعاملها و پلتفرمها ارائه شده و حتی روی اکثر نسخههای لینوکس بهطورپیشفرض نصب است. همانطورکه میدانید پروتکل اصلی استفاده از وبسایتها در سطح اینترنت HTTP است که همنام سرویس آپاچی است. ناگفته نماند این وب سرور را سرویسی با نام httpd اجرا میکند.
۲. Microsoft Internet Information Services (بهاختصار IIS)
این وب سرور را شرکت مایکروسافت ارائه میدهد و بهرایگان روی سیستمعامل ویندوز نصب میشود. البته برای استفاده از خود سیستمعامل باید هزینه پرداخت کرد و متنباز هم نیست. IIS تنها برای پلتفرمهای مختلف ویندوز ارائه میشود و همین نکته باعث شده است تا بسیاری از شرکتها بهدلیل نرخ نسبتاً زیاد ویندوز، ریسک استفاده از این سیستمعامل و وب سرور IIS را نپذیرند. عملکرد این وب سرور روی ویندوز مناسب است؛ ولی عملکرد راضیکنندهای در اجرای کدهای اسکریپت PHP ندارد و با اینکه وردپرس امکان نصب روی ویندوز را فراهم کرده است، احتمال دارد مانند لینوکس بهدرستی روی این سیستمعامل کار نکند.
وب سرور IIS مختص برنامههایی است که با زبان asp.net نوشته شدهاند. این شرکتها یا سیستمعامل ویندوز را بهطورانحصاری استفاده میکنند یا شرکتهایی هستند که از سرویسهایی نظیر Microsoft Sharepoint برای تولید نرمافزارهایی استفاده کردهاند که در سالهای گذشته بیشتر بهکار میرفتهاند.
راهنمای کامل و جامع وب سرور IIS را در مقاله زیر بخوانید.
۳. Nginx
درحالحاضر، این وب سرور بیش از ۳۲درصد کاربران این حوزه را ازآنِ خود کرده است. Nginx در ابتدا بهعنوان جایگزینی برای آپاچی معرفی شد و با رفع برخی نواقص آن، قصد داشت عملکرد بهتری از آپاچی ارائه کند. با استناد به برخی وبسایتها، Nginx درمقایسهبا آپاچی میتواند چهار برابر بیشتر به درخواستهای دریافتی پاسخ دهد و در شرایط یکسان، منابع کمتری از آپاچی مصرف کند. باتوجهبه اینکه Nginx مانند آپاچی وب سروری متنباز و رایگان است، طرفداران پروپاقرصی پیدا کرده است.
از مزایای دیگر وب سرور مذکور این است که میتوان هم بهعنوان پروکسی سرور و هم بهعنوان Load Balancer از آن استفاده کرد. باتوجهبه اینکه تنظیمات این وب سرور با آپاچی متفاوت است، درصورت نیاز به جایگزینی با آپاچی باید تمامی تنظیمات مطابق سیناتکس Nginx نوشته شود. همچنین، انجینیکس از فایل .htaccess نمیتواند پشتیبانی کند که کار پرهزینهای خواهد بود.
۴. Litespeed Web Server (بهاختصار LSWS)
یکی از وب سرورهای محبوبی است که طبق آمار رسمی Netcraft، باتوجهبه قدمت کمی که درمقایسهبا سایر رقیبانش دارد، موفق شده است رتبه چهارم را در میان وب سرورهای پرکاربرد ازآنِ خود کند. در سال ۲۰۰۳، شرکت LiteSpeed Technologies وب سرور LSWS را ارائه داده و این وب سرور با اکثر ویژگیهای Apache، ازجمله mod_rewrite و mod_security و .htaccess سازگار است. همچنین، لایتاسپید میتواند از تنظیمات آپاچی استفاده کند و بهراحتی جایگزین آپاچی شود. یکی از مزایای این وب سرور آن است که در اکثر کنترل پنلهای معروف نظیر cPanel و DirectAdmin و Plesk وجود دارد و از پنل کاربری مستقلی بهره میبرد.
لایتاسپید هشت لایسنس مختلف دارد که از نسخه رایگان تا Web Host Elite را ارائه میدهد. هریک از این نسخهها محدودیتهایی روی تعداد دامنه و تعداد کاربران و میزان رم قابلاستفاده دارد؛ البته نسخه کامل آن را بهصورت کرکشده میتوان نصب و راهاندازی کرد.
معرفی وب سرور لایت اسپید به همراه بررسی نسخههای مختلف و راهنمای خرید لایسنس را در مقاله زیر بخوانید.
۵. OpenLiteSpeed
نسخهای رایگان از LiteSpeed است که تقریباً امکانات آن را بهرایگان و بدون نیاز به تهیه لایسنس ارائه میشود. نکته مهم دیگر اینکه OpenLiteSpeed متنباز است؛ ولی از برخی امکانات مهم لایتاسپید پشتیبانی نمیکند؛ ازجمله mod_security و فایل .htaccess. البته اکثر کنترل پنلها هم از این وب سرور پشتیبانی نمیکنند.
تفاوت عملکرد وب سرورها
وبسایتها و شرکتهای مختلفی عملکرد وب سرورها را با یکدیگر مقایسه کردهاند که بررسی آنها به انتخاب وب سرور مناسب میتواند کمک کند. درادامه، برخی از این مقایسهها را باهم بررسی میکنیم. وبسایت www.plesk.com نتیجه بررسی عملکرد Nginx با Litespeed را بهنفع لایتاسپید اعلام کرده و گفته است که لایتاسپید در تمامی زمینهها، ازجمله سرعت و مصرف منابع عملکرد بهمراتب بهتری درمقایسهبا Nginx از خود نشان داده است. درادامه، نتایج این بررسیها را مشاهده میکنید.
-n: تعداد کل درخواستهای ارسالی به وب سرور
-c: تعداد کل اتصالات
-m: تعداد درخواستهای همزمان برای هر اتصال
-t: تعداد تردهای h2load
وبسایت chemicloud.com نیز در مقالهای سه وب سرور Litespeed و Apache و Nginx را باهم مقایسه کرده است. در این مقایسه، بهترتیب «تعداد درخواستها در ثانیه» و «زمان پاسخگویی» و «نرخ انتقال داده» را با هر سه وب سرور مذکور آزمایش کرده که در هر سه آزمایش، لایتاسپید رتبه نخست را بهدست آورده است. درادامه، تصاویر این نتایج را مشاهده میکنید.
در آزمایش بعدی، وبسایتی یکسان با هر سه وب سرور Litespeed و Nginx و Apache راهاندازی شد و وبسایت GTMetrix عملکرد و سرعت پاسخگویی آنها را بررسی کرد. درادامه، تصاویر این بررسیها را مشاهده میکنید.
راهنمای انتخاب مناسب وب سرور
برای انتخاب وب سرور مناسب، نکات مختلفی ازجمله:
- سیستمعامل
- تعامل با سایر سرویسها
- توانایی پاسخ به درخواستهای Server-Side
- موارد امنیتی
باید مدنظر گرفته شود. در ابتدای کار از ابزارهای مختلفی برای انتخاب وب سرور مناسب میتوانید استفاده کنید. یکی از این ابزارها وبسایت www.g2.com است که وب سرورهای مختلف را از دیدگاههای مختلف باهم مقایسه میکند و نتیجه را برای شما نمایش میدهد. ابزارهای دیگری که میتوان روی سیستمعامل لینوکس نصب کرد و امکان بررسی عملکرد وب سرور را با آپشنهای مختلف میسر میکنند، میتوانید از وبسایت geekflare.com مشاهده کنید.
اشاره به این نکته خالی از لطف نیست که وب سرورها عموماً تنظیماتی پیشفرض دارند و برای بهبود عملکرد آنها نیاز است مطابق نیازمان تنظیم شوند. امکان انجام این تنظیمات نیز در وب سرورها از اهمیت فراوانی برخوردار است و پس از انتخاب و راهاندازی وب سرور، پیشنهاد میکنیم برای بهینهسازی تنظیمات وب سرور، مطابق نیاز خود اقدام کنید.
موارد استفاده از وب سرور Apache
درمجموع، وب سرور Apache در ابتدای کار برای ادمینهایی میتواند انتخاب مناسبی باشد که وبسایتها و کاربران مختلف دارند؛ زیرا این وب سرور علاوهبر رایگانبودن، امکان شخصیسازی تنظیمات را متناسب با نیاز کاربران و وبسایتها میدهد. همچنین، ماژولهای متعدد ازپیشتعریفشدهای برای سهولت کار وجود دارند که میتوانند بهراحتی از آنها استفاده کنند (نظیر ماژولهای احراز هویت، PHP ،Python و Ruby).
آپاچی بسیار پایدار و مطمئن است و استفاده از آن بهویژه برای کاربران مبتدی بسیار راحت است. از مزایای دیگر آپاچی میتوان به CGI اشاره کرد که امکان تبادل با اپلیکیشنهای دیگر را فراهم میسازد. هرچند سایر وب سرورها ازجمله Nginx از اسکریپتهای CGI پشتیبانی میکنند، راهاندازی آنها به راحتیِ آپاچی نیست. از معایب وب سرور آپاچی میتوان به پشتیبانینکردن از فایل .htaccess اشاره کرد. با وجود امکانات متعددی که این فایل به ما میدهد و میتوان تنظیمات منحصربهفردی در هر مسیر یا دایرکتوری ایجاد کرد، این مسئله تأثیر بسزایی بر کاهش سرعت وبسایت میگذارد؛ زیرا هنگام لود وبسایت، آپاچی باید کل مسیرهای منتهی به مسیر اصلی را پیمایش کند و تمامی دستورها و نقشهای فهرستشده در این فایلها را اجرا کند. این امر باعث افزایش زمان لود وبسایت و مصرف منابع زیادی از سرور میشود.
موارد استفاده از وب سرور Nginx
درمقابل، وب سرور Nginx میتواند بهعنوان وب سرور عمل یا درمقابل وب سرور دیگری (حتی آپاچی یا لایتاسپید) بهعنوان Reverse Proxy سرویسدهی کند. این وب سرور نظیر آپاچی امکان استفاده از فایلهای .htaccess را ندارد؛ ولی ازجمله ویژگیهای مثبتش میتوان به Load Balancer اشاره کرد که باعث ایجاد توازن در مصرف منابع سرور میشود و درصورت راهاندازی آن، Nginx عملکرد مطلوبی خواهد داشت. بههمیندلیل، راهاندازی Nginx از Apache بهمراتب مشکلتر است و برای مدیران تازهوارد با مشکلات متعددی همراه خواهد بود.
موارد استفاده از Litespeed
در طرف دیگر، Litespeed قرار دارد که گزینه مناسبی برای جایگزینی آپاچی است. برای مقایسه عملکرد Nginx و Litespeed، باید منصفانه به قضیه نگاه کرد. لایتاسپید برای راهاندازی WordPress ،Magento ،MediaWiki و… بسیار عملکرد خوبی از خود نشان میدهد؛ درحالیکه Nginx عملکرد بهتری در استفاده از برنامههایی دارد که به زبان برنامهنویسی Python و Ruby نوشته شدهاند. نکته مهم دیگر حفظ امنیت سرور دربرابر حملههای DDOS است؛ البته لایتاسپید از این لحاظ ویژگیهای مثبت زیادی دارد؛ زیرا دربرابر این نوع حملهها عملکرد موفقی از خود نشان میدهد.
درباره مصرف منابع نیز باید بگوییم برخلاف آپاچی که میتواند بهسرعت کل منابع را درگیر کند، لایتاسپید عملکرد بسیار مطلوبی از این نظر دارد. گفتنی است وب سرور لایتاسپید، تنها وب سرور موجود است که بهطورکامل از HTTP/3 پشتیبانی میکند. سرویسها و ماژولهایی که روی وب سرور لایتاسپید ارائه میشوند، بسیار کاربردی هستند. بهعنوان مثال، با راهاندازی LSCache روی وردپرس، امکان استفاده از منابع سرور برای کش محتویات میسر میشود که نتیجه آن سرعت و عملکرد بهتر وبسایت خواهد بود.
راحتی استفاده از وب سرور لایتاسپید روی کنترل پنلهای معروفی نظیر cPanel و DirectAdmin بسیار مهم است؛ زیرا راهاندازی این وب سرور و جایگزینی آن با آپاچی را ساده کرده است و مشکلاتی نظیر خطرهای امنیتی یا تأخیر در راهاندازی را بهحداقل میرساند. علاوهبراین، یکی از دلایل استفاده فراوان کاربران از آپاچی و محبوبیت روزافزون لایتاسپید این است که اکثر قریببهاتفاق کاربران حوزه هاستینگ وبسایتهای خود را با زبان PHP و سیستم مدیریت محتوای WordPress و امثال آن راهاندازی میکنند. شایان ذکر است یکی از اجزای اصلی لایتاسپید به نام LSPHP امکان تبادل برنامههای PHP با وب سرور را به بهترین شکل میسر میسازد که البته از معادل آن در آپاچی بسیار عملکرد بهتری نیز از خود نشان میدهد.
سؤالات متداول
۱. وب سرور چیست؟
وب سرور سرویسی نرمافزاری است که صفحات و محتوای درخواستی وبسایتها را ازطریق مرورگر به کاربران ارائه میدهد.
۲. چند نوع وب سرور وجود دارد؟
انواع مختلف وب سرور براساس قابلیتهای مختلف وبسایتها مثل نوع سیستمعامل وجود دارد که از محبوبترین آنها میتوان به انجینایکس، لایتاسپید، آپاچی و IIS اشاره کرد.
۳. وب سرور آپاچی چیست؟
آپاچی یکی از بهترین وب سرورهای مورد استفاده در اینترنت است که میتوان از آن روی سیستمعامل ویندوز، لینوکس، مک، یونیکس و سولار استفاده کرد. آپاچی از سرویسی با نام httpd برای ارائه محتوا به کاربران استفاده میکند.