در توپولوژی یک CDN بین سرور اصلی (Origin) و سرورهای لبه (Edge) ارائه دهنده تفاوت بارزی وجود دارد. مورد اول شامل نسخه اصلی وب سایت شما بوده در حالی که مورد دوم، نسخه های کش شده ی برخی از محتوای شما را میزبانی می کند. در این مطلب به طور کامل در خصوص سرورهای origin و سرورهای لبه صحبت کرده و نحوه تعامل آنها با یکدیگر را مورد بررسی قرار خواهیم داد.
سرور اصلی (Origin server) چیست؟
هدف یک سرور اصلی پردازش و پاسخ دهی به درخواست های ورودی اینترنت از سمت کاربران سایت است. گاهی اوقات مفهوم سرور اصلی ( origin ) با مفاهیم سرور لبه (edge) یا سرور کش، به اشتباه گرفته می شود.
در واقع، یک سرور اصلی، سرور یا کامپیوتری است که یک یا چند برنامه معین را برای دریافت و پاسخ به درخواست ها اجرا می کند. یک سرور اصلی می تواند تمام مسئولیت پاسخ دهی به محتوای درخواست شده در یک یا چند سایت را به تنهایی برعهده گیرد؛ تا زمانی که ترافیک ورودی از حد توانایی و ظرفیت پردازشی سرور اصلی عبور نکند؛
در اینجا موضوع تأخیر مطرح می شود، که با افزایش درخواست ها، سروری که باید به تمام آنها پاسخ دهد، به منابع پردازشی بیشتر و قدرتمند تری نیاز خواهد داشت؛ که اگر ظرفیت آن را نداشته باشد، ممکن است از دسترس خارج شود.
فاصله یا مسافت فیزیکی بین سرور اصلی و کلاینت (مرورگر کاربران) به این تأخیر اضافه خواهد کرد. که زمان لود صفحات وب را افزایش خواهد داد. علاوه بر این RTT یا زمان رفت و برگشتی درخواست هایی که برای برقراری ارتباطات امن بین سرور و مرورگر به کمک SSL/TLS نیز به تاخیر اشاره شده، اضافه خواهد کرد.
این تأخیرات و کندی سرعت لود صفحات به طور مستقیم بر تجربه کاربری تاثیر خواهد گذاشت.
اما به کمک یک شبکه توزیع محتوا (CDN) زمان RTT کاهش یافته، و تعداد درخواست های ارسالی به سمت سرور اصلی بین سرورهای لبه توزیع و پخش خواهند شد.
یک سرور لبه ی CDN چطور با سرور اصلی تعامل می کند؟
زمانی که تغییرات محتوایی شما در سرور اصلی، در سرورهای کش CDN نیز منتشر شده و تکثیر می یابند، این دو جبهه به طور منظم با یکدیگر در تعامل هستند.
موثرترین روش برای بروزرسانی سرورهای لبه این است که CDN شما به طور خودکار محتوای جدید را از سرور اصلی دریافت کند. روش ناکارآمد، شیوه Push کردن است که باید خودتان با هر تغییر در سرور اصلی، CDN را نیز آپدیت کنید.
سرورهای لبه می توانند بار کاری سرور اصلی را کاهش داده و عملکرد و امنیت آن را ارتقا بخشند. در این راستا با 5 سوال نحوه تعامل بین سرورهای لبه و سرور اصلی را بررسی خواهیم کرد...
چطور ترافیک را از CDN عبور دهیم؟
برای دریافت بهترین کارایی از سرورهای لبه ی CDN، آنها باید به عنوان یک مقصد برای تمام ترافیک HTTPS ورودی شما تعیین گردند. این کار را می توان به وسیله اصلاحات زیر در DNS انجام داد:
- پیکربندی A Record دامنه به نحوی که پرسش ها را به رنج IP سرویس CDN شما Resolve کند.
- اشاره کردن رکوردهای CNAME زیر دامنه ها به زیر دامنه های پاسخ دهنده ای که تحت کنترل CDN هستند.
با اعمال این تغییرات، تمام درخواست های کاربران به هر آدرسی در دامنه شما توسط DNS به سمت سرورهای لبه CDN شما مسیردهی خواهند شد. به لطف مسیردهی Anycast، معمولاً این سرورها بر مبنای موقعیت جغرافیایی از نزدیک ترین فاصله محتوا را به دست هر کاربر می رسانند.
یک CDN چطور از سرور اصلی ما محافظت می کند؟
به عنوان یک دروازه برای تمام ترافیک های HTTPS سایت، یک CDN در حالت ایده آل تمام ترافیک و درخواست های ورودی را وارسی می کند. این کار به CDN اجازه می دهد تا حملات لایه وب اپلیکیشن را شناسایی کرده و آنها را قبل از رسیدن به سرور اصلی فیلتر کند.
همین قوانین و منطق ها برای بات های مخرب و حملات DDoS در لایه اپلیکیشن نیز صدق می کنند.
علاوه بر این، یک CDN تمام درخواست جستجوی نام دامنه را به سمت IP های ارائه دهنده CDN شما هدایت خواهد کرد. به این ترتیب آدرس IP سرور اصلی شما پنهان باقی مانده و از حملات مرتبط با IP محافظت خواهد شد.
آیا پس از فعال سازی CDN ، IP ما بلافاصله پنهان خواهد شد؟
نه دقیقاً . مکانیزم مسیردهی مجددی که در بالا اشاره شد، با وجود موثر بودنش، می تواند توسط هکرها دور زده شود، به طوری که اگر آنها می توانند به وسیله تاریخچه رکوردهای دامنه شما و سایر انواع حملات، به داده های IP شما دست یابند.
به همین دلیل، بهتر است اقدامات مازاد زیر را نیز برای محافظت از وب سرور خود انجام دهید:
- دوری از نام subdomain های عمومی: اگر برخی از سرویس های مرتبط با دامنه شما (مثل ایمیل یا FTP) توسط یک CDN محافظت نشوند، subdomain آنها می تواند آدرس IP سرور اصلی شما را لود دهد. به همین دلیل است که پس از راه اندازی CDN بهتر است از استفاده از Subdomain های عمومی برای این سرویس ها خودداری کنید. مثلا ftp.mydomain.com را به چیزی شبیه به 650ftp.mydomain.com تغییر دهید.
- تغییر آدرس IP: برای اینکه دست هکرها از تاریخچه رکوردهای خود را دور نگه دارید، بهتر است بعد از راه اندازی CDN آدرس های IP سرور اصلی تان را تغییر دهید.
آیا CDN می تواند بار تمام توزیع محتوا را از دوش سرور اصلی بردارد؟
نه دقیقاً. با اینکه CDN ها بیشتر بخش های مربوط به وظایف کاری توزیع محتوای سرور اصلی را متحمل می شوند، میزان دقیق این بار به ظرفیت های CDN و ویژگی های خاص سایت شما بستگی خواهد داشت.
سرورهای لبه CDN می توانند منابع استاتیک را کش کنند، از جمله تصاویر، CSS ها و فایل های JS. همین کار باعث کاهش حداقل 50% در مصرف پهنای باند شما خواهد شد.
اما CDN های پیشرفته تر نظیر CDN میزبان کلود، می توانند محتوای داینامیک را نیز کش کنند؛ محتوایی نظیر فایل های HTML وردپرس. با چنین ظرفیت هایی پتانسیل کش کردن به 60 تا 80 درصد افزایش خواهد یافت.
اگر چند سرور اصلی یا دیتاسنتر داشته باشیم، CDN چطور عمل خواهد کرد؟
ذات Reverse proxy یا پروکسی معکوس یک CDN یه آن اجازه می دهد تا مثل توزیع کننده بار یا Load balancer عمل کند، و ترافیک را بین دیتاسنترها یا سرورها اصلی چندگانه تقسیم کند. به این صورت جریان تمام ترافیک ورودی سایت شما در بالاترین سطح عملکردی خود کنترل شده و بار سرورها کاهش می یابند.
CDN میزبان کلود نیز به شما این امکان را می دهد تا توزیع بار بین سرورهای اصلی و سرورهای لبه را به کمک قابلیت Load balancing مدیریت و کنترل کنید.
پیشنهاد می کنیم مطالب مرتبط با CDN نظیر سرورهای لبه، توزیع بار، تکنولوژی Anycast، معماری BGP و AS ها و غیره را در بلاگ میزبان کلود مطالعه کنید.
جمع بندی
به لطف ظهور تکنولوژی CDN دیگر یک سرور اصلی یا Origin به تنهایی مسئول پاسخ دهی به تمام درخواست های کاربران سایت نبوده و این بار کاری بین سرورهای لبه cdn پخش خواهد شد. علاوه بر این داشتن قابلیت های امنیتی در سرویس های CDN می تواند ترافیک مجاز و سالم را از ترافیک مخرب و تهدید آمیز جدا کرده و باعث افزایش دسترسی پذیری یا اطمینان خاطر از در دسترس بود سرور اصلی شود. راه اندازی یک CDN برای سایت کار بسیار ساده ای است.
شما می توانید در کمترین زمان ممکن و بدون نیاز به دانش فنی خاصی، سایت یا اپلیکیشن خود را به این تکنولوژی پیشرفته مجهز کنید. در این مطلب به طور کامل در خصوص سرورهای Origin و نحوه تعامل آنها با سرورهای لبه صبحت کردیم. امیدواریم این مطلب نیز برای شما مفید واقع شده باشد.
ارائه دهنده خدمات زیرساخت یکپارچه ابری