آموزش سرور

وب سرور (Web Server) چیست؟ آشنایی با نحوه کار وب سرور و انواع آن

وب سرور با ذخیره کردن فایل ها و تحویل آن در مرورگر ها، سایت شما را در دسترس کاربران قرار می دهد. همچنین با استفاده از دو پروتکل SMTP (پروتکل انتقال ایمیل ساده یا Simple Mail Transfer Protocol) و FTP (پروتکل انتقال فایل یا File Transfer Protocol) فایل ها را برای ایمیل ها و یا ذخیره سازی داده ها، پردازش می نماید.

این امکان وجود دارد که شما سروری برای خود راه اندازی کنید، اما بهترین گزینه گرفتن سرور از یک ارائه دهنده میزبانی است، زیرا باعث صرفه جویی در زمان و هزینه خواهد شد. در ادامه با نحوه کار وب سرورها و چند نمونه از محبوب ترین آن ها آشنا خواهید شد.

وب سرور چیست؟

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

هر وب سرور از دو بخش اصلی تشکیل شده است:

  1. نرم افزار: که نحوه دسترسی کاربران به فایل های میزبانی شده را کنترل می کند. خودش دارای چند بخش است و حداقل یک سرور HTTP را برای پردازش و پاسخگویی به درخواست های دریافتی در خود جای داده است.
  2. سخت افزار: که وب سرور و فایل های مربوط به آن مانند اسناد استاتیک HTML، فایل های جاوا اسکریپت و استایل های CSS را ذخیره می کند. سخت افزار Web Server به اینترنت متصل می شود و امکان تبادل داده ها با سایر دستگاه ها فیزیکی را فراهم می کند.
وب سرور چیست

سرورهای وب و اپلیکیشن از مدل client-server پیروی می کنند. در این مدل، یک برنامه (client)، یک منبع یا سرویس را از برنامه دیگر (server) درخواست می کند. سرور های وب از پروتکل انتقال ابرمتن (HTTP) هنگام پاسخگویی به درخواست های کاربر از طریق شبکه جهانی وب استفاده می کنند. HTTP پروتکلی است که برای تبادل اطلاعات بین رایانه ها استفاده می شود. از طریق فرآِیند درخواست HTTP، سرورها می توانند سند HTML سایت را به مرورگر وب کاربر، مانند Google Chrome تحویل دهند.

نحوه کار

هنگامی که شخصی می خواهد وب سایتی را ببیند، مرورگر به دنبال Web Server میزبان فایل های سایت مد نظر می گردد. در این فرآیند مرورگر وب نام دامنه سایت را از طریق سیستم نام دامنه یا DNS (Domain Name System) به یک آدرس IP تبدیل می کند.

اگر کاربر یک وب سایت را به طور متعدد بازدید نماید، مرورگر وب در حافظه پنهان (cache) آن را جستجو می کند. پس از یافتن وب سرور مربوطه، مرورگر یک درخواست HTTP برای بازیابی محتوای سایت ارسال می کند. وب سرور درخواست HTTP را از طریق سرور HTTP خود دریافت و پردازش می کند. پس از پذیرفته شدن درخواست و جستجو در پایگاه داده، داده های مربوطه به مرورگر وب بازگردانده شده و به کاربر تحویل داده می شود.

اگر سرور HTTP نتواند فایل های درخواستی را پیدا یا پردازش کند، کد وضعیت خطای HTTP را به مرورگر ارسال می کند. رایج ترین پیغام خطای 404 است که به این معنی است که صفحه درخواستی وجود ندارد. همچنین اگر مشکل مجوز وجود داشته باشد، ممکن است خطای 403 ظاهر شود. علاوه بر این اگر Web Server نتواند به موقع، از سرور دیگری که به عنوان proxy یا gateway شناخته می شود، پاسخی دریافت کند، خطای 504 رخ می دهد.

web-server

انواع وب سرور

بسته به نرم افزار نصب شده، دو دسته وب سرور های استاتیک و داینامیک خواهیم داشت. نوع استاتیک شامل یک سخت افزار و سرور HTTP است. اما وب سرور داینامیک از یک وب سرور استاتیک به همراه یک نرم افزار اضافی، معمولا یک سرور برنامه و پایگاه داده، تشکیل شده است.

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

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

دلیل استفاده از وب سرور

آن ها می توانند چندین کار از جمله ارسال و دریافت ایمیل، ذخیره وب اپلیکیشن ها و پردازش درخواست های FTP را انجام دهند. با این حال اصلی ترین عملکرد، به عنوان میزبان وب سایت ها است که باعث می شود تا آن ها در سراسر جهان کاربردی و تعاملی باشند. برای داشتن یک وب سایت باید یک وب سرور داشته باشید، که ساده ترین راه انجام این کار، خرید میزبانی وب و نام دامنه از یک ارائه دهنده سرور و هاست می باشد. سرویس میزبانی وب سایت، فضایی برای ذخیره فایل ها و پایگاه داده وب سایت شما فراهم می کند.

در عین حال، نام دامنه به عنوان یک آدرس منحصر به فرد برای وب سایت شما عمل می کند و به کاربران کمک می کند تا آن را به راحتی پیدا کنند. ارائه دهندگان سرویس های میزبانی به صورت منظم عملکرد وب سرورها را چک می کنند. به همین دلیل انتخاب یک شرکت قابل اعتماد در این زمینه بسیار مهم است. بنابراین باید با فاکتور های انتخاب شرکت هاستینگ خوب آشنا باشید.

ویژگی های وب سرور

وب سرور

علاوه بر پردازش درخواست ها و ارسال پاسخ به مرورگر، اکثر وب سرورها ویژگی هایی دیگری نیز دارند که در ادامه به آنها اشاره شده است:

  • ثبت فایل ها و رویدادها(File logging): گزارش رویدادها یا فعالیت هایی که سرور وب انجام می دهدف مانند درخواست ها، امنیت و گزارش های خطا، در یک فایل ثبت می شود. هر باز که وب سرور درخواست جدید را دریافت می کند، یک خط به متن گزارش اضافه می شود.
  • احراز هویت(Authentication): اکثر وب سرورها، از کاربران وب نام کاربری و رمز عبور درخواست می کنند. این کار برای ایجاد، اجازه دسترسی جزئی یا کلی به منابع وب سایت انجام می شود.
  • محدود کردن پهنای باند(Bandwidth limiting): وب سرورها پهنای باند یا مقدار داده ای که در هر زمان انتقال داده شده یا پردازش می شود را محدود می کنند. این ویژگی باعث می شود تا سرعت پاسخ ها کنترل شود و این اطمینان ایجاد می شود که پاسخ ها در زمان درست به کاربر خواهد رسید.
  • فضای ذخیره سازی(Storage space): در هر سرور وب فضایی برای ذخیره سازی فایل ها وجود دارد. میزان این فضا مستقیما بر عملکرد سرور برای میزبانی و مدیریت صفحات وب تاثیر می گذارد.
  • تعادل بار(Load balancing): این تکنیک توسط وب سرورها برای توزیع ترافیک ورودی در چندین سرور استفاده می شود. هدف از تعادل بار، به حداقل رساندن زمان پاسخ و جلوگیری از ایجاد اضافه بار برای سرور است.
  • تضمین آپتایم(Uptime): آپتایم سرور، مدت زمانی است که یک وب سرور برای پردازش درخواست ها و تحویل فایل ها فعال است. این ویژگی مستقیما بر در دسترس بودن وب سایت تاثیر می گذارد.
  • پشتیبانی از زبان های برنامه نویسی: وب سرورها، از زبان های برنامه نویسی سمت سرور که برای توسعه و اجرای برنامه ها استفاده می شوند، پشتیبانی می کنند.

معروف ترین وب سرورها

برخی از معروف ترین وب سرورها عبارتند از:

nginx
  • Apache HTTP Server: آپاچی یک وب سرور رایگان و منبع باز است که برای بسیاری از سیستم عامل ها از جمله ویندوز، لینوکس و macOS استفاده می شود. این Web Server از محبوب ترین ها در بین صاحبان وب سایت ها، توسعه دهندگان و میزبانان هاست است.
  • NGINX: این نرم افزار منبع باز در ابتدا تنها برای سرویس دهی HTTP طراحی شده بود. اما اکنون به عنوان یک پروکسی معکوس(reverse proxy)، متعادل کننده بار(HTTP load balancer) و پروکسی ایمیل(email proxy) عمل می کند. همچنین سرعت و توانایی بالا در مدیریت چندین اتصال باعث شده تا برای وب سایت های پربازدید بهترین گزینه باشد.
  • Microsoft Internet Information Services (IIS): نوعی سرور وب منبع بسته، که توسط مایکروسافت توسعه یافته است و به طور گسترده در سیستم عامل های ویندوز استفاده می شود. همچنین از Active Server Pages (ASP)، که فناوری اسکریپت نویسی سمت سرور مایکروسافت برای وب اپلیکیشن های داینامیک و کاربردی است، پشتیبانی می کند.
  • Lighttpd: وب سرور رایگان و منبع باز، که به دلیل پردازش سریع داده، با وجود CPU با قدرت پایین،معروف شده است.
  • Apache Tomcat: یک وب سرور رایگان است که مخصوص Java Servlets است. Apache Tomcat به عنوان یک کانتینر جاوا شناخته می شود. همچنین می تواند تحت پورت 8080 کار کند و از PHP، ASP.net، Perl، Python پشتیبانی می کند.

هر شرکت میزبانی، انواع مختلفی از سرورهای وب نام برده شده را پشتیبانی می کند.

پیکربندی(Configuration)

نحوه کانفیگ وب سرور بر اطمینان از عملکرد و امنیت آن تاثیر زیادی دارد. مدیران سرور برای رسیدن به عملکرد بهتر چندین پیکربندی مختلف را تنظیم می کنند.

معماری وب سرور
  • کانفیگ تنظیمات: مدیران سرور پارامترهایی مانند حافظه کش، محدودیت های درخواست و زمانبندی کانکشن ها را تنظیم می کنند تا متناسب با نیازهای وب سایت میزبانی شده باشد. با چنین تنظیمات دقیقی، سرور قادر است درخواست های دریافتی را به طور موثر مدیریت کند و محتوای درخواستی را به سرعت تحویل دهد.
  • تمهیدات امنیتی: برای محافظت از داده های حساس و کاهش تهدیدات احتمالی، مدیران سرور اقدامات امنیتی قوی را کانفیگ می کنند. این اقدامات شامل راه اندازی فایروال ها، سیستم های تشخیص کاربارن و پروتکل های رمز گذاری هستند. ایجاد چنین تنظیمات امنیتی برای حفظ سرور از حملات هکرها بسیار مهم است.
  • بهینه سازی عملکرد: کانفیگ سرور به مدیران امکان تخصیص بهینه منابع را می دهد. همچنین باعث می شود تا تعادل بار موثر را پیاده سازی کنند و از مکانیسم کش استفاده کنند. چنین اقداماتی توانایی سرور برای مدیریت ترافیک را افزایش می دهدد و منجر به کاهش تاخیر و زمان پاسخ سریعتر می شود.

معماری وب سرور

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

از جمله پارامترهایی که در معماری Web Server تعریف می شوند می توان به موارد زیر اشاره کرد:

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

اما برای معماری وب سرور ها دو رویکرد وجود دارد:

رویکرد همزمان (Concurrent)

در این رویکرد، وب سرور می تواند چندین درخواست را به طور همزمان مدیریت کند. سه روش مختلف برای رسیدن به این هدف وجود دارد:

  • چند فرآیندی (Multi-process): در این فرآیند یک والد، فرآیندهای فرزند تک رشته ای مختلفی را ایجاد می کند و سپس تمام درخواست های دریافتی را بین فرزند ها توزیع می کند. تمام فرزند ها در یک زمان درخواست ها را انجام می دهند. والد، مسئول نظارت بر فعالیت ها و در صورت نیاز تقسیم مجدد آن ها است.
  • چند رشته ای (Multithreaded): چندین فرآیند تک رشته ای برای رسیدگی به درخواست های مختلف ایجاد می شوند.
  • ترکیبی (Hybrid): ترکیبی از دو روش فوق است. در این روش فرآیندهای متعددی ایجاد می شوند که دارای چندین رشته هستند و هر رشته یک اتصال را کنترل می کند.

رویکرد رویداد محور تک فرآیندی (Single-process-event-driven)

در SPED یک فرآیند واحد تمام پردازش ها را به شیوه ای رویداد محور انجام می دهد. در این روش از فرآیند event-driven server (سرور مبتنی بر رویداد) استفاده می شود که مسئول پردازش چندین درخواست HTTP به طور همزمان است.

تفاوت سرور و وب سرور

سرور سخت افزاری است که برنامه ها و داده ها در آن ذخیره می شوند و کاربران در شبکه به آن دسترسی دارند. در این تعریف بر منابع سخت افزاری تاکید شده و با سیستم عادی تفاوت دارد. در حالی که وب سرور یک سیستم(هر نوع سیستمی) است که برنامه ها را اجرا می کند و خروجی نهایی را نمایش می دهد. بر اساس این تعریف، بیشترین تاکید بر نوع سرویس ارائه شده، است.

نتیجه گیری

وب سرور، باعث اتصال وب سایت شما به اینترنت می شود و شامل سخت افزار و نرم افزارهایی است که هر کدام نقش مشخصی در پردازش فایل ها دارند. وظیفه اصلی یک وب سرور میزبانی وب سایت ها، پردازش درخواست های HTTP و ارائه محتوای وب به کاربران است. علاوه بر Apache و NGINX، وب سرورهای دیگری از جمله Microsoft Internet Information Services و Lighttpd وجو دارند که مورد استقبال کاربران هستند.

انواع مختلف Web Server ها می توانند محتوای داینامیک یا استاتیک را به مرورگر کاربر ارسال کنند. در وب سایت استاتیک محتوای نمایش داده شده به همه کاربران یکسان است، در صورتی که در وب سایت داینامیک محتوای منحصر به فردی به هر کاربر نشان داده می شود. خرید یک سرویس میزبانی وب برای هر نوع وب سایت ضروری است. میزبان وب مسئولیت حفظ امنیت و عملکرد سرور را بر عهده خواهد داشت. بدین ترتیب مدیر وب سایت به خوبی بر کسب و کار خود تمرکز خواهد کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا