تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

وب سرور Web Server چیست؟ اصول و مفاهیم پایه‌ برای توسعه‌دهندگان


۱۰ اردیبهشت ۱۴۰۴

وب سرور (Web Server) یکی از اجزای اصلی در نمایش صفحات وب است. هر وب‌سایتی که در اینترنت می‌بینید، پشت صحنه‌اش به کمک یک وب سرور اجرا می‌شود. وظیفه‌ی اصلی وب سرور این است که فایل‌های مربوط به سایت، مانند صفحات HTML، فایل‌های CSS، یا JSON را به مرورگر کاربر ارسال کند.

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

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

وب سرور مانند یک پل بین بخش پشتی سایت (Backend) و آن چیزی که کاربر می‌بیند (Frontend) عمل می‌کند. چه اطلاعات به‌صورت ایستا مانند یک فایل ثابت HTML باشند و چه پویا که به‌صورت لحظه‌ای تولید می‌شوند، وب سرور آن‌ها را به مرورگر می‌فرستد. با لیارا همراه باشید.

همین حالا، فایل‌های خودتون رو در فضایی سریع، پایدار و مقیاس‌پذیر ذخیره کنید.
✅ سازگار با Amazon S3 ✅ عملکرد بالا ✅۲.۵ گیگ فضای رایگان
خرید فضای ذخیره‌سازی ابری

آنچه در ادامه خواهید خواند:

  • وب سرور چیست؟
  • کاربرد های اصلی وب سرور
  • مهم ترین وظایف وب سرور
  • نمونه‌ هایی از کاربرد وب‌ سرور در پروژه‌ ها
  • اهداف وب سرور
  • جنبه های سنجش وب سرور
  • انتخاب وب سرور مناسب
  • تفاوت‌ های کلیدی در نحوه رسیدن وب سرور ها
  • جایگزین های وب سرور
  • سوالات متداول
  • جمع بندی
وب سرور Web Server

وب سرور چیست؟

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

علاوه بر این، وب‌ سرور می‌تواند از پروتکل‌هایی مانند SMTP برای ارسال یا دریافت ایمیل و همچنین FTP برای تبادل فایل‌ها پشتیبانی کند. به‌عبارت دیگر، هر سرویسی که به ارائه‌ی وب‌سایت، هاستینگ، اپلیکیشن‌‌ها یا موارد مشابه نیاز داشته باشد، به وب‌ سرور وابسته است. وب‌ سرور مانند یک پل ارتباطی بین سرور و کاربران عمل می‌کند و با سرعت بالا، اطلاعات و فایل‌های مورد نیاز را به کاربران منتقل می‌کند. در واقع، زمانی که کاربر درخواستی را ثبت می‌کند، این وب‌ سرور است که محتوای مرتبط را پردازش کرده و به‌سرعت به کاربر تحویل می‌دهد.

کاربرد های اصلی وب سرور

وب سرور (Web Server) وظیفه مدیریت درخواست‌های اینترنتی از طریق پروتکل‌های HTTP و HTTPS را بر عهده دارد. آنچه که وب سرور را از سایر انواع سرورها متمایز می‌کند، تمرکز آن بر پاسخ‌گویی به درخواست‌هایی است که از طریق پروتکل HTTP ارسال می‌شود. در مقابل، سرورهایی مانند اپلیکیشن سرور‌ Gunicorn یا سرورهایی که با پروتکل‌هایی مانند WSGI کار می‌کنند، در لایه‌های متفاوتی از معماری نرم‌افزار قرار دارند و معمولاً به‌عنوان واسطه‌ای میان زبان‌های برنامه‌نویسی سمت سرور و وب‌ سرور فعالیت می‌کنند. این نوع سرورها معمولاً از طریق کتابخانه‌های خارجی به برنامه‌ها متصل می‌شوند.

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

  • ارائه‌ فایل‌های HTML , CSS و JavaScript
  • نمایش تصاویر و ویدیوها
  • مدیریت خطاهای HTTP و ارسال پیام‌های مرتبط
  • پاسخ‌گویی هم‌زمان به درخواست‌های کاربران
  • هدایت آدرس‌ها (URL Routing) و بازنویسی آن‌ها
  • پردازش و ارائه‌ی محتوای پویا (Dynamic Content)
  • فشرده‌سازی محتوا به‌منظور کاهش حجم داده‌ها و افزایش سرعت بارگذاری
  • فعال‌سازی کش مرورگر برای منابع ایستا (Static Caching)

نمونه‌ هایی از کاربرد وب‌ سرور در پروژه‌ ها

  • طراحی و راه‌اندازی یک وب‌سایت
  • ساخت اپلیکیشنی که نیاز به اتصال به اینترنت دارد

البته باید توجه داشت که این موارد تنها بخشی از کاربردهای وب‌ سرور هستند. نوع داده‌هایی که یک وب‌ سرور می‌تواند ارائه دهد، محدود به این مثال‌ها نیست. به‌عنوان نمونه، یک وب‌ سروری که به درخواست‌های یک API پاسخ می‌دهد، معمولاً داده‌هایی را در قالب فرمت‌هایی مانند JSON برای کلاینت ارسال می‌کند.

موارد امنیتی بسیار مهم برای حفاظت از سرور مجازی
حفاظت از سرور مجازی

اهداف وب سرور

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

جنبه های سنجش وب سرور

برای اینکه یک وب سرور (Web Server) به‌عنوان یک راه‌حل مناسب شناخته شود، باید جنبه‌های آن نیز زیر نظر گرفته شود.

مدت زمان دسترس‌ پذیری سایت (UpTime)

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

این موضوع نه‌تنها با ثبات سیستم مرتبط است، بلکه به پیش‌بینی‌پذیری عملکرد نیز وابسته است. وقتی کاربر یک آدرس اینترنتی (URL) را وارد می‌کند یا روی لینکی کلیک می‌کند، انتظار دارد که صفحه‌ی مورد نظر در هر زمان و بدون مشکل بارگذاری شود.

تنها استثناهایی که در این زمینه قابل قبول هستند، زمان‌های از پیش تعیین‌شده برای به‌روزرسانی یا انجام عملیات نگهداری سیستم است. وب‌ سروری که دچار مشکلات فنی می‌شود یا به‌صورت ناگهانی کرش (Crash) می‌کند، تأثیر منفی مستقیمی بر تجربه‌ کاربر خواهد داشت.

سرعت

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

هم‌ زمانی (Concurrency)

این موضوع به مدیریت هم‌زمان درخواست‌های متعدد اشاره دارد. ممکن است فکر کنید که افزایش تعداد بازدیدکنندگان یک سایت امری مثبت است، اما این موضوع زمانی به مشکل تبدیل می‌شود که زمان بارگذاری به‌ شدت کند شده و وب‌ سرور دچار کرش (Crash) شود. سرور فیزیکی یا مجازی شما منابع محدودی مانند حافظه RAM و قدرت پردازشی CPU دارد، بنابراین وب‌ سرورها باید بتوانند به صورت مؤثر از این منابع استفاده کنند.

مقیاس‌ پذیری (Scalability)

مقیاس‌پذیری به دو صورت امکان‌پذیر است. یکی از طریق ارتقاء قدرت سرورهای موجود (مقیاس‌پذیری عمودی) و دیگری از طریق افزودن سرورهای بیشتر به مجموعه شما (مقیاس‌پذیری افقی). به صورت کلی، هرچه مخاطبان شما بیشتر شوند، ممکن است به سرورهای بیشتری نیاز پیدا کنید.

راحتی در راه اندازی

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

مستند سازی

وب‌ سرورها بسیار پیچیده هستند. معمولاً تنظیمات پیش‌فرض به شما کمک می‌کنند تا سریعاً فرآیند را آغاز کنید، اما با گذر زمان نیازهای شما ممکن است تغییر کند و افزایش یابد. در چنین شرایطی، مستندسازی مناسب می‌تواند به شما در ساخت راه‌حل‌های سفارشی کمک کند.

پشتیبانی توسعه دهندگان

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

پشتیبانی جامع

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

رک سرور چیست؟ (راهنمای جامع + نکات مهم)
رک سرور

انتخاب وب سرور مناسب

در حال حاضر، دو وب‌ سرور متن‌باز بسیار معروف و محبوب به نام‌های Apache و Nginx وجود دارند که به صورت گسترده مورد استفاده قرار می‌گیرند.

Apache اولین وب‌ سروری بود که در زمانی ساخته شد که معمولاً چندین وب‌سایت با فایل‌های تنظیمات مختلف در یک وب‌ سرور قرار می‌گرفتند. پس از آن، Nginx معرفی شد که بیشتر به نیازهایی پاسخ می‌دهد که در آن به‌جای میزبانی چندین وب‌سایت روی یک سرور، هدف ارائه یک وب‌سایت بر روی یک سرور با کارایی بالا در شرایط بار زیاد است.

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

همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راه‌اندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه به‌صرفه
خرید سرور مجازی ابری

تفاوت‌ های کلیدی در نحوه رسیدن وب سرور ها

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

ساختار فایل های پیکربندی

وب‌ سرورها تنظیمات خود را در فایل‌های پیکربندی ذخیره می‌کنند و این فایل‌ها قابل تغییر هستند. نحوه ذخیره و سازماندهی این فایل‌ها عمدتاً یک مسئله ساختاری است که وب‌ سرورهای مختلف را از هم متمایز می‌کند. این تفاوت به دو دسته تقسیم می‌شود:

  • متمرکز
  • غیرمتمرکز

فایل‌های پیکربندی غیرمتمرکز به شما کنترل دقیق‌تری را روی سیستم فایل می‌دهند، که این ویژگی ناشی از نیاز به میزبانی چندین وب‌سایت بر روی یک سرور است. در مقابل، پیکربندی‌های متمرکز بیشتر بر روی ارائه یک وب‌سایت به روشی کارآمد تمرکز دارند و به‌جای استفاده از ساختار پوشه‌ای، از تطبیق الگوهای URI برای شناسایی URLها استفاده می‌کند.

مدیریت هم زمان درخواست ها

وب‌ سرور (Web Server) منابع محدودی مانند RAM و پردازشگر CPU دارد. نحوه مدیریت درخواست‌ها توسط وب‌ سرور تأثیر زیادی بر کارایی استفاده از این منابع دارد. یک درخواست می‌تواند با راه‌اندازی یک فرآیند مجزا برای هر درخواست پردازش شود، یا می‌تواند بر اساس رویدادهای مختلف به صورت بهینه مدیریت شود.

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

ارائه محتوای استاتیک (Statics)

علاوه بر صفحات وب، وب‌ سرورها درخواست‌هایی برای منابع دیگری مانند تصاویر، ویدئوها، فایل‌های CSS و JavaScript نیز دارند. این نوع محتوا ثابت است و همیشه یکسان می‌باشد، بنابراین به آن محتوای استاتیک (Statics) گفته می‌شود. بسیاری از وب‌سایت‌ها ممکن است از یک فایل HTML ساده استفاده کنند که برای هر کاربر تغییر نمی‌کند و به‌عنوان محتوای استاتیک (Statics) در نظر گرفته می‌شود. وب‌ سرورها می‌توانند این محتوا را فشرده کنند تا زمان بارگذاری بهینه‌تر شود.

Nginx در ارائه محتوای استاتیک (Statics) بسیار کارآمد است، چراکه از سیستم رویداد محور برای پردازش درخواست‌ها استفاده می‌کند. Apache نیز می‌تواند محتوای استاتیک (Statics) را ارائه دهد، اما معمولاً در شرایط بار زیاد از Nginx کندتر عمل می‌کند.

ارائه محتوای داینامیک

زمانی که محتوا تغییر می‌کند و بسته به درخواست کاربران پردازش و سفارشی‌سازی می‌شود، به آن محتوای داینامیک (Dynamic Content) گفته می‌شود. برای مثال، پس از ورود به یک وب‌سایت، معمولاً نام کاربری شما در نوار ناوبری به‌طور داینامیک نمایش داده می‌شود. محتواهای داینامیک پیچیدگی بیشتری دارند، زیرا وب‌ سرور باید درخواست‌ها را به‌طور منحصر به فرد پردازش کند و این محتوا نمی‌تواند به‌صورت عمومی کش شود.

Apache به صورت داخلی محتوای داینامیک (Dynamic Content) را پردازش می‌کند و معمولاً در استک‌هایی مانند LAMP (Linux , Apache , MySQL , PHP) استفاده می‌شود. در حالی که Nginx برای پردازش محتوای داینامیک (Dynamic Content) به کتابخانه‌های خارجی مانند PHP-FPM نیاز دارد.

امکانات پروکسی معکوس

پروکسی معکوس به‌عنوان یک سرور واسط عمل می‌کند که درخواست‌های HTTP را به وب سرورهای پشت خود ارجاع می‌دهد. این سرور می‌تواند ترافیک را بین وب سرورها و اینترنت هدایت کرده و معمولاً لایه‌ای است که به صورت مستقیم با فایروال تعامل دارد. در حالی که اکثر وب سرورها امکان استفاده از پروکسی معکوس را دارند، Nginx ویژه برای این نقش بهینه‌سازی شده است.

اهمیت Nginx در استفاده واقعی بیشتر به دلیل ویژگی‌های پروکسی معکوس و کارایی آن است. بسیاری از تنظیمات سرور چندین وب سرور (Web Server) سنتی را پشت یک پروکسی معکوس Nginx قرار می‌دهند و از آن برای مدیریت درخواست‌ها و توزیع بار استفاده می‌کنند.

پشتیبانی

هم Nginx و هم Apache از پشتیبانی قوی از تیم‌های توسعه‌دهنده خود و جوامع مختلف برخوردار هستند. به‌عنوان محبوب‌ترین وب‌ سرورهای متن‌باز، منابع آموزشی زیادی در دسترس هستند. Apache توسط سازمان غیرانتفاعی Apache پشتیبانی می‌شود و همیشه رایگان خواهد بود. هسته Nginx متن‌باز است، اما ویژگی‌های آن مانند بررسی سلامت سرورهای upstream و پایدارسازی جلسات تنها در محصول Nginx Plus در دسترس می‌باشند.

نحوه نصب و ایمن سازی phpMyAdmin در سرور مجازی اوبونتو Ubuntu
نصب و ایمن سازی phpMyAdmin در سرور مجازی اوبونتو Ubuntu

جایگزین های وب سرور

اگر به دنبال یک سروری هستید که همیشه آماده پاسخگویی به درخواست‌های HTTP باشد، وب‌ سرور بهترین گزینه است. اما هرچه از تمرکز بر روی سرویس‌دهی درخواست‌های HTTP دورتر شوید، وب‌ سرورها گزینه مناسبی نخواهند بود. این موضوع به‌خصوص در مورد ویژگی‌های کمکی که وب‌ سرورها ارائه می‌دهند صدق می‌کند.

به‌عنوان‌مثال، ویژگی‌هایی مانند کشینگ (Caching) ممکن است بهتر باشد در سطح پروکسی معکوس مدیریت شوند. علاوه‌بر تمامی این‌ها، با تغییر اولویت‌های توسعه‌دهندگان در منابع مدیریت وب‌سرورها، راه‌حل‌هایی مانند سرورلِس (Serverless)، سیستم‌های مدیریت محتوای بدون سرور (Headless CMS) و Jamstack به‌عنوان پاسخ‌هایی به این نیازها در میان خواهند آمد.

سوالات متداول

در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جواب‌های کوتاه اما مفیدی داده‌ایم که با استفاده از آن می‌توانید به سوال خود پاسخ صحیحی را بدهید.

وب سرور (Web Server) چیست؟

وب سرور نرم‌افزاری است که درخواست‌های HTTP و HTTPS را از کاربران دریافت کرده و پاسخ‌های مناسب را ارسال می‌کند.

آیا می‌توانم از هر سروری به عنوان وب سرور استفاده کنم؟

خیر، وب سرور باید برای ارسال درخواست‌های HTTP و HTTPS باشد. به عنوان مثال، وب سرورهایی مانند Apache و Nginx این وظیفه را انجام می‌دهند.

تفاوت بین وب سرور و سرور برنامه چیست؟

وب سرور فقط درخواست‌های HTTP را مدیریت می‌کند، در حالی که سرور برنامه برای پردازش درخواست‌ها از زبان‌های برنامه‌نویسی مختلف استفاده می‌کند

چرا وب سرور به سرعت بالا نیاز دارد؟

چون کاربران انتظار دارند که صفحات وب به سرعت بارگذاری شوند. زمان بارگذاری طولانی مدت می‌تواند منجر به از دست دادن کاربران شود.

چگونه می‌توانم وب سرور خود را پیکربندی کنم؟

وب سرور با استفاده از فایل‌های پیکربندی مانند .htaccess برای Apache یا فایل‌های پیکربندی Nginx تنظیم می‌شود.

آیا Nginx سریع‌ تر از Apache است؟

بله، Nginx در مدیریت درخواست‌های همزمان و محتوای استاتیک (Statics) بهتر عمل می‌کند، اما Apache در پردازش محتوای داینامیک (Dynamic Content) قدرتمندتر است.

وب سرور و پروکسی معکوس چه تفاوتی دارد؟

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

چه زمانی به سرورلس نیاز دارم؟

زمانی که به یک راه‌حل مقیاس‌پذیر و بدون نیاز به مدیریت سرورهای فیزیکی نیاز دارید. سرورلس (Serverless) امکان مدیریت بهینه منابع را فراهم می‌کند.

آیا وب سرور می‌تواند با هر نوع دیتابیسی کار کند؟

وب سرور به مستقیما با دیتابیس ارتباط برقرار نمی‌کند. برای پردازش داده‌ها، به سرور برنامه و نرم‌افزارهایی مانند PHP یا Node.js نیاز است.

وب سرور IIS چیست و چگونه کار می‌ کند؟ (راهنمای کامل)
وب سرور IIS

جمع بندی

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

به اشتراک بگذارید