آنچه در این مقاله میخوانید:
- سرور مبدأ (Origin Server) چیست؟
- سرور مبدأ چگونه کار میکند؟
- منظور از لبه یا Edge در شبکه چیست؟
- سرور لبه (Edge Server) چیست؟
- سرور لبه چگونه کار میکند؟
- تفاوت بین سرور مبدأ و سرور لبه چیست؟
- CDN تا چه مقدار پهنای باند را میتواند از سرور مبدأ کم کند؟
- چگونه سرور لبه و سرور مبدأ با هم ارتباط برقرار میکنند؟
- آیا CDN از سرور مبدأ محافظت میکند؟
شما به عنوان صاحب یک کسب و کار آنلاین و مدیر وبسایت، احتمالا واژههای سرور مبدأ و سرور لبه CDN را شنیدهاید و ممکن است تا حدودی با آنها آشنایی داشته باشید. گاهی اوقات تمایز بین این دو نوع سرور برای افرادی که چندان با مفاهیم شبکه آشنا نیستند، بسیار دشوار است. ولی دانستن تفاوتهای این دو مفهوم برای تمامی مدیران وبسایت امری ضروری محسوب میشود، زیرا با دانستن اینکه سرور مبدأ و سرور لبه چیست، میتوانند برای ارائه محتوای خود از طریق وبسایت تصمیم بهتر و سازندهتری بگیرند.
در این مقاله، ابتدا به تعریف سرور مبدأ و سرور لبه و نحوه کارکرد آنها میپردازیم. سپس، کاربرد هر یک از آنها را توضیح میدهیم تا بتوانید تصمیم بهتری در رابطه با انتخاب استراتژی توزیع محتوای خود بگیرید.
سرور مبدأ (Origin Server) چیست؟
سرور مبدأ (سرور اصلی) کامپیوتری است که با اجرای برنامههای خاصی، فرایند دریافت و پاسخ به درخواستهای کاربران اینترنت (ترافیک ورودی) را پردازش میکند. این نوع سرور، نسخه اصلی صفحات وبسایت را در حافظه خود ذخیره کرده و مسئول ارائه محتوا به کاربران وبسایتها است.
سرور مبدأ چگونه کار میکند؟
سرور مبدأ میزبان محتوای وبسایتهای مختلفی است، که روزانه تعداد زیادی درخواست برای مشاهده محتوای وبسایت از سمت مرورگر کاربر را دریافت کرده و به آن پاسخ میدهد. هنگامی که کاربر صفحهای از یک وبسایت را در مرورگر خود باز میکند، درخواستی برای دریافت محتوا از مرورگر به سرور مبدأ ارسال میشود. با توجه به اینکه سرور مبدأ چقدر از کاربر نهایی فاصله مکانی دارد، مدت زمان رسیدن پاسخ از سرور به کاربر (زمان تأخیر) میتواند متفاوت باشد.
علاوه بر این، مرورگر کاربر باید با سرور مبدأ ارتباط امنی بر پایه پروتکل SSL/TLS ایجاد کند، که همین امر موجب افزایش زمان رفت و برگشت (RTT) میشود. RTT را میتوان به عنوان زمان رفت و برگشت بین ارسال درخواست و دریافت پاسخ توسط مرورگر در نظر گرفت. علاوه بر فاصله فیزیکی، میزان ترافیک، تعداد نودها (Node) و سرورهای وب میانی نیز میتوانند بر RTT تأثیر بگذارند.
نکته دیگری که در مورد سرورهای مبدأ وجود دارد این است که این نوع سرور توسط مالک وبسایت نگهداری و به روزرسانی میشود. هر یک از این سرورها ظرفیت ثابتی دارند که بیش از آن نمیتوانند ترافیک و درخواستهای ورودی را بپذیرند و در صورت ادامه دریافت درخواستها، خراب یا به اصطلاح Down میشوند. اگر سرور مبدأ خراب یا کند شود، دسترسی به محتوای وبسایت بسیار دشوار یا کلا قطع خواهد شد.
پیشنهاد میشود مقاله “میزبانی وب یا Web Hosting چیست؟” را مطالعه کنید.
منظور از لبه یا Edge در شبکه چیست؟
در هر طرحی از شبکه، تعدادی از دستگاههای مختلف با استفاده از یک یا چند الگوی شبکهی از پیش تعریف شده به یکدیگر متصل میشوند. اگر شبکهای بخواهد به شبکه دیگری متصل شود، باید نوعی پل وجود داشته باشد تا ترافیک را از یک مکان به مکان دیگر منتقل کند. در شبکه به این پل، لبه گفته میشود و دستگاههای سختافزاری که این پل را در لبه شبکه ایجاد میکنند، دستگاههای لبه نامیده میشوند.
دستگاههای لبه، شامل روترها و سوئیچهای مسیریابی هستند که اغلب در نقاط تبادل اینترنت (IxP) قرار میگیرند تا به شبکههای مختلف اجازه اتصال و اشتراکگذاری ترانزیت را بدهند.
سرور لبه (Edge Server) چیست؟
سرور لبه کامپیوتری است که در لبه شبکه CDN قرار دارد و اغلب به عنوان نقطه اتصال بین شبکههای مختلف عمل میکند. درواقع، سرور لبه نوعی دستگاه لبه است که نقطه ورود به شبکه را فراهم میکند. هدف اصلی سرور لبه CDN این است که محتوای وبسایتها را تا حد امکان نزدیک به کاربران نهایی ذخیره کند تا زمان تأخیر را کاهش داده و زمان بارگذاری صفحات وب را بهبود بخشد.
سرور لبه چگونه کار میکند؟
قبل از آنکه به نحوه کارکرد سرور لبه بپردازیم، ابتدا بیایید نحوه اتصال شبکههای مختلف به یکدیگر را در سطح خانگی و جهانی بررسی کنیم. در شبکههای معمولی خانگی یا اداری، دستگاههایی مانند تلفن همراه یا رایانه از طریق مدل شبکه hub-and-spoke به شبکه متصل میشوند. همه دستگاهها در یک شبکه محلی (LAN) قرار دارند و هر دستگاه به یک روتر مرکزی (دستگاه لبه) متصل است که از طریق آن میتوانند با یکدیگر ارتباط برقرار کنند.
همانطور که گفته شد، برای اتصال شبکه A به شبکه B باید از دستگاه لبه استفاده شود تا نقطه اتصالی برای برقراری ارتباط بین شبکهها وجود داشته باشد. همین الگو در سطح جهانی و اتصالات سراسر اینترنت نیز به کار میرود. هنگامی که یک اتصال باید از سراسر اینترنت عبور کند، گامهای واسطهای بیشتری باید بین شبکه A و شبکه B برداشته شود. اما معمولا با افزایش تعداد دستگاههای لبه بین شبکهها، اشتراکگذاری ترانزیت توسط آنها با تنگنا (bottleneck) مواجه میشود.
برای درک بیشتر این موضوع، بیایید تصور کنیم که هر شبکه یک دایره است و محلی که دایرهها در آن به هم متصل شدهاند، لبه شبکه است. برای اینکه یک اتصال در سراسر اینترنت حرکت کند، باید از چندین شبکه مختلف عبور کرده و از چندین دستگاه لبه بگذرد. به طور کلی، هرچه این اتصال مسافت بیشتری را طی کند، تعداد شبکههایی که باید از آنها عبور کند، بیشتر میشود. همچنین، این اتصال ممکن است قبل از رسیدن به مقصد، از ارائه دهندگان خدمات اینترنتی (ISP) مختلف و تعداد زیادی از سختافزارهای زیرساخت اصلی اینترنت نیز عبور کند. اگر در این میان، سرورهای لبه CDN وجود نداشته باشد، اتصال بین مبدأ و مقصد ممکن است مسیر کندتر و پیچیدهتری را طی کند.
ارائهدهندگان سرویس CDN سرورهای خود را در مکانهای زیادی قرار میدهند، اما مهمترین آنها سرورهای لبه هستند که بین شبکههای مختلف قرار میگیرند. این سرورهای لبه به چندین شبکه مختلف متصل میشوند و اجازه میدهند ترافیک به سرعت بین شبکهها منتقل شود. بدون CDN، در بدترین حالت ممکن است که ترافیک، مسافت کوتاهی را همانند یک مسیر طولانی طی کند یا به اصطلاح این مسافت را “ترومبون” (trombone) کند؛ مثلا برای اتصال به دستگاهی در آن طرف خیابان، این اتصال به جای عبور از یک مسیر نزدیک، ممکن است سراسر کشور را دور بزند تا به مقصد برسد. CDN با قرار دادن سرورهای لبه در مکانهای کلیدی و استراتژیک این مشکل را برطرف کرده است و به همین دلیل میتواند به سرعت محتوا را به کاربران داخل شبکههای مختلف تحویل دهد. برای کسب اطلاعات بیشتر در مورد مزایای استفاده از CDN، نحوه عملکرد CDN را مطالعه کنید.
تفاوت بین سرور مبدأ و سرور لبه چیست؟
سرور مبدأ شامل نسخههای اصلی محتوای وبسایت است که در یک مکان ثابت قرار دارد. در حالیکه تعداد سرورهای لبه تقریبا زیاد بوده و در مکانهای مختلف در سراسر جهان توزیع شدهاند.
سرورهای لبه مسئول ذخیره یا کش (Cache) محتوا و همچنین مسئول پردازش سریع درخواستها و ارائه محتوای کش شده به نزدیکترین کاربران نهایی هستند. بدین ترتیب، سرورهای لبه بار ترافیک را از سرورهای مبدأ کم کرده و تنها زمانی به سرور مبدأ متصل میشوند که بخواهند منابع جدید و ذخیره نشده را دانلود کنند.
CDN تا چه مقدار پهنای باند را میتواند از سرور مبدأ کم کند؟
CDNها بخش قابل توجهی از تحویل محتوا را مدیریت میکنند، اما این بدان معنی نیست که همه وظایف سرورهای مبدأ را بر عهده دارند. علیرغم تمامی مزایای سرورهای لبه، سرورهای مبدأ نقش بسیار مهمی دارند؛ این سرورها حاوی کدهای اصلی و کلیدی سمت سرور و پایگاه دادههای مورد استفاده برای احراز هویت هستند.
اینکه CDN دقیقا تا چه مقدار از وظایف را میتواند بر عهده بگیرد کاملا به عملکردهای CDN و جنبههای منحصر به فرد وبسایت شما بستگی دارد.
به طور کلی، منابع استاتیک مانند فایلهای CSS، تصاویر، فایلهای استاتیک HTML و JavaScript را میتوان در سرورهای CDN کش کرد. محتوای استاتیک تقریبا نیمی از پهنای باند مصرفی را تشکیل میدهند که اگر از سرورهای لبه به کاربر تحویل داده شوند بسیار مقرون به صرفه خواهد بود. علاوه بر این، محتوای داینامیک مانند فایلهای HTML وردپرس نیز میتوانند با شرایط خاص در برخی CDNها مانند CDN اَبر دِراک ذخیره شوند و در این موارد، پهنای باند صرفهجویی شده میتواند تا بیش از ۸۰ درصد نیز باشد.
چگونه سرور لبه و سرور مبدأ با هم ارتباط برقرار میکنند؟
تعامل بین این دو سرور زمانی است که سرور مبدأ محتوا را به سرور لبه تحویل میدهد. این دو سرور میتوانند با استفاده از روش Push یا Pull با یکدیگر ارتباط برقرار کنند. در روش Push، CDN با تغییرات ایجاد شده در سرورهای مبدأ به روز میشود. این روش نسبت به روش Pull که در آن CDN بهطور خودکار محتوای جدید را از سرورهای مبدأ واکشی میکند، کاربرد کمتری دارد.
نقش سرور لبه و سرور مبدأ برای تحویل محتوا به کاربر نهایی کاملا به استاتیک یا داینامیک بودن محتوا بستگی دارد. به عنوان مثال، یک صفحه ورود به سیستم را در نظر بگیرید که در آن کاربر باید قبل از دسترسی به یک سرویس (مانند لینک دانلود) احراز هویت شود. در حالت ایدهآل، منابع صفحه وب شامل فایلهای استاتیک مانند صفحه HTML، فایل CSS مربوطه، عکس و برخی از کتابخانههای JavaScript خواهد بود. از آنجایی که این فایلها از نوع استاتیک هستند و برای همه بازدیدکنندگان وبسایت یکسان نشان داده میشوند، میتوان آنها را مستقیما در سرور لبه ذخیره کرد؛ بدین ترتیب میتوان این این فایلها را مستقیما از سرور لبه و بدون مزاحمت برای سرور مبدأ و مصرف پهنای باند به کاربر نهایی تحویل داد.
اما زمانی که کاربر جزئیات ورود خود را وارد کرده و روی دکمه لاگین کلیک میکند، یک محتوای داینامیک شامل اطلاعات منحصربفرد کاربر در سرور مبدأ ایجاد میشود که باید به سرور لبه سفر کند. بنابراین، برای ادامه روند تحویل محتوا، سرور لبه باید دریافت این محتوای داینامیک را از سرور مبدأ درخواست کند. البته، سرور مبدأ باید قبل از ارسال اطلاعات حساب کاربر به سرور لبه، جزئیات ورود کاربر را با دادههای ثبت شده در پایگاههای داده خود مقایسه کرده و آن را تأیید کند، و سپس این اطلاعات را به سرور لبه تحویل دهد.
برای اینکه CDNها به درستی کار کنند، سرورهای لبه باید به عنوان مقصد درخواستهای HTTP ورودی تعیین شوند. برای این کار، مدیر وبسایت باید تغییراتی در سیستم نام دامنه (DNS) خود ایجاد کند، که درخواستهای ورودی به وبسایت خود را به یکی از سرورهای لبه هدایت کند. برای بررسی اینکه آیا محتوای وبسایت از سرور لبه به کاربر تحویل داده میشود یا خیر، میتوان به هدر پاسخ منابع نگاه کرد. برای کسب اطلاعات بیشتر، به مقاله “Control-Cache چیست؟” مراجعه کنید.
آیا CDN از سرور مبدأ محافظت میکند؟
سرورهای مبدأ به دلیل اهمیتی که در ذخیره محتوای اصلی وبسایتها دارند، باید در برابر حملات سایبری محافظت شوند. CDNها میتوانند در این زمینه با محافظت از سرورهای مبدأ در برابر ترافیکهای ورودی خاص کمک کنند. این کار به چند روش انجام میشود، که عبارتند از:
بازرسی ترافیک ورودی
CDNها برای شناسایی و فیلتر کردن حملات برنامههای کاربردی وب، مانند SQL injection و cross-site scripting، درخواستهای HTTP/S ورودی را بررسی میکنند و از سرورهای مبدأ در برابر انواع خاصی از حملات DDoS مانند حملات لایه کاربرد (Application Layer) که هدفش از دسترس خارج کردن سرور مبدأ با ارسال مستقیم ترافیک است، محافظت میکند.
مخفی کردن آدرس IP سرورهای مبدأ
CDNها با مخفی کردن آدرس IP سرورهای مبدأ از آنها در برابر حملات مستقیم به سرور از طریق IP (direct-to-IP attacks) مانند حملات DDoS لایه شبکه محافظت میکند. این کار با پنهان کردن آدرس IP واقعی سرور مبدأ و تغییر مسیریابی درخواست دامنه به سمت IPهای ارائه دهندگان CDN انجام میشود.
مدیریت افزایش ترافیک
CDNها برای مدیریت ترافیک ورودی به وبسایتها طراحی شدهاند. سرورهای مبدأ در مواجهه با حجم زیادی از ترافیک، یا خراب شده یا از دسترس خارج میشوند. CDNها با توزیع مناسب ترافیک به سمت سرورهای لبه در سراسر شبکه از ورود یکباره ترافیک به سرورهای مبدأ جلوگیری کرده و مانع از Down شدن آن میشود.
سرورهای مبدأ و سرورهای لبه را میتوان جزء جداییناپذیر از سیستم توزیع محتوای وبسایت در سراسر اینترنت دانست که هر یک نقشی اساسی در این زمینه دارند. CDN اَبر دِراک با توزیع متناسب سرورهای لبه در سراسر جهان، علاوه بر محافظت از سرور مبدأ دربرابر حملات مخرب مانند DDoS، امکان تحویل سریع محتوا به کاربران نهایی را فراهم میکند. جهت آشنایی بیشتر با سایر خدمات CDN به صفحه شبکه توزیع محتوا (CDN) مراجعه کنید.