هدف اصلی یک سرور مبدا (Origin Server) پردازش و پاسخگویی به درخواستهای دریافتی اینترنت از مشتریان است. به طور معمول مفهوم سرور مبدا همراه با مفاهیم سرور لبه (edge server) یا سرور حافظه پنهان (caching server) بیان میشود. در اصل، یک سرور مبدا رایانهای است که یک یا چند برنامه که به منظور پردازش درخواستهای دریافتی اینترنت طراحی شده را اجرا می کند.
یک سرور مبدا میتواند تمام مسئولیتهای مربوط به ارائه مطالب به صورت اینترنتی مانند وبسایت را بر عهده گیرد، مشروط بر آن که حجم ترافیک تا حدی باشد که سرور قادر به پردازش باشد و همچنین تاخیر زمانی (latency) موضوع مهمی نباشد.
فاصله فیزیکی بین سرور مبدا و کاربری که درخواست ارسال میکند، منجر به افزایش زمان تاخیر در کانکشن میشود و همچنین مدت زمان لود شدن یک منبع اینترنتی مانند یک صفحه وب، را افزایش میدهد.
مدت زمان رفت و برگشت اضافی (RTT) بین کاربر و سرور مبدا به منظور برقراری ارتباط اینترنتی ایمن با استفاده از SSL/TLS، علاوه بر این که زمان تاخیر بیشتری را به درخواست اضافه میکند، بر تجربه کاربر در مورد درخواست داده از سرور مبدا به صورت مستقیم تاثیر میگذارد.
با استفاده از شبکه توزیع محتوا (CDN) زمان رفت و برگشت را میتوان کاهش داد و همچنین میتوان از میزان درخواستهای وارده به یک سرور مبدا کاست.
تفاوت بین سرور مبدا و سرور CDN Edge چیست؟
به زبان ساده، سرورهای CDN edge کامپیوترهایی هستند که به منظور ارائهی محتوا در اسرع وقت، در نقاط مهمی بین ارائه دهندگان کلی اینترنت، در نقاط مختلف جهان قرار گرفتهاند. یک سرور لبه (edge server) در داخل یک CDN در شبکه قرار دارد و به طور خاص برای پردازش سریع درخواستها، طراحی شده است.
با قرار دادن سرورهای لبه در داخل نقاط تبادل اینترنت (IXP) که بین شبکهها وجود دارد، یک CDN قادر است مدت زمان لازم برای رسیدن به یک مکان خاص در اینترنت را کاهش دهد.
این سرورهای لبه (edge server) برای این که بار یک یا چند سرور مبدا را لود (load) کنند، محتوای حافظه پنهان (cache) را ذخیره میکنند. در این صورت سرورهای لبه با انتقال تصاویر، فایلهای HTML، جاوا اسکریپت و … به دستگاه کاربری که اقدام به ارسال درخواست نموده، در سریعترین زمان ممکن مدت زمان لود شدن یک منبع وب را کاهش میدهند. سرورهای مبدا هنوز هم هنگام استفاده از CDN، عملکردهای مهمی برای اجرا دارند.
در اینجا مثالی ساده از نحوه عملکرد و همکاری سرور لبه و سرور مبدا به منظور ارائه یک صفحه ورود به سیستم (login page) و همچنین مجاز شمردن یک کاربر جهت استفاده از خدمات ارائه میشود:
- یک فایل HTML برای صفحه وب
- یک فایل CSS برای طراحی یک صفحه وب
- چندین فایل تصویر
- چندین فایل جاوا اسکریپت
همهی این فایلها ثابت هستند و به صورت پویا ایجاد نمیشوند؛ به عبارت دیگر برای کلیه بازدیدکنندگان وب سایت یکسان میباشند. در نتیجه، این فایلها میتوانند هم به صورت حافظه پنهان ذخیره شوند و هم از سرور لبه ارائه گردند.
در هر صورت تمامی این فایلها را میتوان نزدیک به دستگاه کاربر و بدون مصرف پهنای باند، لود کرد.
در مرحلهی بعد که کاربر نام کاربری و پسورد خود را وارد کرده و لاگین میکند، درخواست برای محتوای پویا به سرور لبه ارسال میشود که درخواست مربوطه را به سرور مبدا، پروکسی میکند.
سپس سرور مبدا قبل از این که اطلاعات را ارسال کند، هویت کاربر را در جدول پایگاه دادههای خود تایید مینماید.
گفتنی است سرورهای لبه که مسئولیت کنترل محتوای ثابت را دارند با سرورهای مبدا به عنوان ارائه دهندهی محتوای پویا دارای تعامل هستند که به هنگام استفاده از CDN نگرانیهایی وجود دارد. قابلیت برخی از CDNها نیز میتواند فراتر از این مثال ساده باشد.
آیا یک سرور مبدا با وجود استفاده از CDN ممکن است در معرض حمله باشد؟
پاسخ کوتاه به این سوال این است: بله.
یک CDN قادر نیست سرور مبدا را شکست ناپذیر کند، اما در صورت استفاده صحیح میتواند سرور مبدا را غیر قابل مشاهده نماید. در این صورت مانند یک سپر دفاعی در برابر درخواستهای وارده عمل میکند. یکی از مهمترین بخشهای تنظیمات مربوط به CDN، پنهان کردن آدرس IP حقیقی سرور مبدا میباشد.
به این ترتیب میتوان گفت بهتر است ارائه دهندهی CDN به هنگام پیادهسازی استراتژیهای CDN به منظور محافظت در برابر حملات DDoS و جلوگیری از برخورد با مبدا، آدرس آی پی سرور مبدا را تغییر دهد.