CDN چیست و چگونه کار میکند؟
- آموزش سئو وردپرس
- بروزرسانی شده در
سلام! من رضا راد هستم و توی این مقاله قراره با هم بررسی کنیم که سایتهای بزرگی مثل گوگل چطور میتونن میلیونها کاربر رو بهصورت همزمان پشتیبانی کنن. سوال اصلی اینه که این سایتها از چه زیرساختهایی و چه نوع سرورهایی استفاده میکنن که با این حجم عظیم درخواستها کم نمیارن؟ توی ادامهی مقاله دقیقتر بهش میپردازیم.
آنچه در این مقاله میخوانید
CDN چیه؟
![CDN چیست و چگونه کار میکند؟ CDN چیست؟ چرا از CDN استفاده کنیم؟ [اینفوگرافیک]](https://mihanwp.com/wp-content/uploads/2017/07/cdn.webp)
واقعیت اینه که سایتهای بزرگی مثل گوگل یا یوتیوب لزوماً از یه سرور فوقالعاده قوی و قدرتمند استفاده نمیکنن که همهی بار ترافیک رو بهتنهایی تحمل کنه. در عوض، این سایتها از یه تکنولوژی هوشمند به نام CDN یا همون شبکهی توزیع محتوا (Content Delivery Network) بهره میبرن.
چطور کار میکنه؟
حالا شاید بپرسید این تکنولوژی دقیقاً چطور کار میکنه؟ اجازه بدید با یه مثال ساده از سایت میهنوردپرس توضیح بدم. فرض کنید ما یه سرور اصلی داریم که توی تهران قرار داره و داخل دیتاسنتر برج میلاد میزبانی میشه. حالا بیاید سناریویی رو تصور کنیم.
یه کاربر از شیراز، یکی از یزد و یه نفر دیگه از پاسارگاد وارد سایت ما میشن. هر کدوم از این کاربرا یه درخواستی به سایت ما میفرستن. مثلاً باز کردن یه صفحه، دانلود یه فایل یا مشاهدهی یه تصویر. در حالت عادی، این درخواستها مستقیم به سرور ما در تهران فرستاده میشن و سرور هم جوابشون رو میده.
اما اگه تعداد این درخواستها به اندازهی ترافیک یه سایت بزرگی مثل گوگل زیاد بشه، چی میشه؟ طبیعتاً سرور ما که اونقدر قوی نیست، دیگه نمیتونه از پس همهی این درخواستها بربیاد و سایت ممکنه کند بشه یا حتی کلاً از دسترس خارج بشه. چون برخلاف گوگل، ما فقط یه سرور توی تهران داریم، نه یه شبکهی گسترده و پخششده از سرورها.
وقتی یه سایت دیگه نمیتونه به درخواستهای کاربران جواب بده و از دسترس خارج میشه، به اصطلاح میگیم سایت داون شده. این یه اتفاق خیلی جدیه، بهخصوص برای سایتهایی که بازدید زیادی دارن یا کسبوکارشون وابسته به سایتشونه.
DDOS چیه؟
حالا جالبه بدونید که بعضی از هکرها از همین نقطهضعف برای حمله به سایتها استفاده میکنن. اسم این نوع حمله DDOS یا Distributed Denial of Service هست. توی این حمله، هکرها با استفاده از تعداد زیادی سیستم (که ممکنه آلوده به ویروس باشن)، هزاران یا حتی میلیونها درخواست جعلی به سمت یه سایت میفرستن. اونقدر این فشار زیاد میشه که سرور دیگه نمیتونه پاسخ بده و سایت داون میشه. در واقع، سایت از شدت شلوغی ساختگی، نفسش بند میاد!
هدف اصلی از DDOS معمولاً ایجاد اختلال، آسیب زدن به اعتبار سایت یا حتی باجگیریه. واسه همینه که استفاده از تکنولوژیهایی مثل CDN میتونه خیلی مؤثر باشه، چون باعث میشه فشار بهصورت هوشمند بین چندین سرور تقسیم بشه و حمله سختتر موفق بشه.
CDN چه مزایایی داره؟
اینجاست که CDN وارد میشه و نقش نجاتدهنده رو بازی میکنه. CDN مثل یه واسطهی هوشمند عمل میکنه؛ یعنی به جای اینکه کاربر مستقیم به سرور اصلی سایت وصل بشه، درخواستش اول میره به یکی از سرورهای CDN که معمولاً از لحاظ جغرافیایی به کاربر نزدیکتره. بعد اون سرور، اگه لازم باشه، درخواست رو به سرور اصلی منتقل میکنه یا اگه قبلاً اون محتوا رو کش کرده باشه، خودش جواب کاربر رو میده.
با این کار، هم فشار زیادی از روی سرور اصلی برداشته میشه، هم سرعت بارگذاری سایت برای کاربر خیلی بیشتر میشه. از همه مهمتر، وقتی یه حملهی DDOS اتفاق میافته، این سرورهای CDN هستن که جلوی موج عظیم درخواستها میایستن و مثل یه سپر امنیتی از سایت محافظت میکنن.
به این سرورهای میانی که بین کاربر و سرور اصلی قرار میگیرن، سرور لبه یا همون Edge Server میگن. وقتی کاربر یه درخواست مثل باز کردن یه صفحه یا دیدن یه عکس ارسال میکنه، سرور CDN اون درخواست رو دریافت میکنه. حالا اگه اون محتوا (مثل یه عکس یا فایل CSS) قبلاً روی سرور CDN ذخیره شده باشه، همونجا بدون نیاز به تماس با سرور اصلی، مستقیماً به کاربر نشون داده میشه.
ولی اگه اون محتوا موجود نباشه، CDN یه بار میره سراغ سرور اصلی، اطلاعات رو دریافت میکنه (مثلاً همون عکس رو)، بعد اون رو به کاربر برمیگردونه. جالب اینجاست که دفعهی بعدی، اگه یه کاربر دیگه همون درخواست رو بفرسته، دیگه نیازی به مراجعه به سرور اصلی نیست، چون اون عکس روی CDN ذخیره شده و آمادهی استفادهست.
نکتهی جالب اینجاست که تعداد این سرورهای لبه (Edge Servers) کم نیست. شرکتهایی که خدمات CDN ارائه میدن، معمولاً توی هر مرکز استان یکی دو تا از این سرورها رو قرار میدن. این یعنی تقریباً همیشه یه سرور نزدیک به کاربر وجود داره که میتونه درخواستها رو سریعتر پاسخ بده.
این کار چند تا مزیت مهم داره. اول اینکه، حجم زیادی از درخواستها اصلاً به سرور اصلی نمیرسه، چون همون سرورهای لبه پاسخ میدن. دوم، سرعت بارگذاری سایت برای کاربران خیلی بیشتر میشه، چون فاصلهی فیزیکی بین کاربر و سرور کاهش پیدا میکنه و سوم، احتمال داون شدن سایت به شدت کم میشه، چون دیگه همهی فشار روی یه سرور نیست. در واقع، CDN مثل یه شبکهی پشتیبانی قوی عمل میکنه که باعث میشه سایت شما هم پایدارتر باشه، هم سریعتر.
از طرف دیگه، یکی دیگه از مزایای مهم استفاده از CDN اینه که اگه یکی از این سرورهای لبه دچار مشکل بشه یا از دسترس خارج بشه، سایت شما از کار نمیافته. چرا؟ چون درخواستها بهصورت خودکار به نزدیکترین سرور فعال دیگه هدایت میشن. این قابلیت که بهش میگن Fault Tolerance یا تحمل خطا، باعث میشه سایت شما همیشه در دسترس باشه حتی وقتی یکی از سرورها مشکل پیدا کنه.
یکی دیگه از دلایل مهم استفاده از سرورهای لبه اینه که فاصلهی جغرافیایی بین کاربر و سرور اصلی میتونه روی سرعت سایت تأثیر بذاره. مثلاً فرض کنید سرور اصلی سایت ما توی تهران هست، ولی کاربری از شیراز وارد سایت میشه. این یعنی درخواست اون کاربر باید حدود ۱۰۰۰ کیلومتر مسیر طی کنه تا به سرور برسه و دوباره پاسخ برگرده. حتی اگه این تأخیر در حد چند میلیثانیه باشه، توی سرعت بارگذاری سایت مخصوصاً برای کاربرهای زیاد یا در اپلیکیشنهای حساس، میتونه محسوس باشه.
اما وقتی از CDN استفاده میکنیم، دیگه نیازی نیست همهی درخواستها تا تهران یا سرور اصلی برن. چون کاربر درخواستش رو به نزدیکترین سرور لبه میفرسته. مثلاً یه سروری که توی خود شیراز یا شهرهای اطراف قرار داره. اون سرور یا اطلاعات رو از حافظهی خودش ارائه میده یا با سرعت خیلی بیشتر اونا رو از سرور اصلی میگیره و به کاربر میرسونه. نتیجه؟ کاهش محسوس در تأخیر و افزایش چشمگیر در سرعت بارگذاری سایت.
یکی دیگه از مزایای استفاده از CDN، تأثیر مستقیمی هست که روی سئو سایت میذاره. وقتی سرعت بارگذاری سایت بالا باشه و کاربر تجربهی خوبی از کار با سایت شما داشته باشه، یعنی صفحات سریع باز بشن، چیزی دیر لود نشه و کاربر مجبور نباشه منتظر بمونه، گوگل هم این رو متوجه میشه و به سایت شما امتیاز بهتری میده.
در واقع، چون رضایت کاربر یکی از معیارهای اصلی گوگل برای رتبهبندی سایته، هر چیزی که باعث بهتر شدن تجربهی کاربری بشه، یه امتیاز مثبت برای سئوی شما محسوب میشه. بنابراین استفاده از CDN، بهطور غیرمستقیم میتونه رتبهی شما رو در نتایج جستجو بالا ببره.
کجا خدمات CDN ارائه میدن؟
توی ایران هم سرویسهای CDN خوبی وجود دارن که میتونید ازشون استفاده کنید. مثلاً شرکتهایی مثل آروانکلاود یا ابر دراک که با وجود چالشها و محدودیتهایی که دارن، جزو ارائهدهندههای قابل قبول و حرفهای در این حوزه محسوب میشن. تجربهی کاربران زیادی نشون داده که این سرویسها میتونن به بهبود سرعت سایت، کاهش مصرف منابع سرور و البته افزایش پایداری کمک کنن.
البته این معرفیها جنبهی تبلیغاتی نداره؛ شما میتونید خیلی راحت با یه جستوجوی ساده در گوگل، سرویسهای CDN داخلی و خارجی دیگهای رو هم پیدا کنید و بر اساس نیاز و بودجهتون بهترین گزینه رو انتخاب کنید.
در کنار سرویسهای داخلی، یه سری CDNهای معروف و قدرتمند خارجی هم وجود دارن که در سطح جهانی استفاده میشن. مثلاً سرویسهایی مثل Cloudflare یا Amazon Web Services (AWS CloudFront) جزو بهترین و پرکاربردترین CDNهای دنیا هستن. این سرویسها معمولاً زیرساخت خیلی قویای دارن، قابلیتهای امنیتی پیشرفتهای ارائه میدن و توی توزیع هوشمند محتوا واقعاً عملکرد بالایی دارن.
اما متأسفانه به خاطر تحریمها و محدودیتهایی که برای ایران وجود داره، این سرویسها معمولاً توی کشور ما سرور فعال ندارن. یعنی حتی اگه ازشون استفاده کنید، ممکنه کاربر ایرانی نتونه با سرعت بالا به محتوا دسترسی پیدا کنه. بنابراین برای سایتهایی که مخاطبشون داخل ایرانه، معمولاً استفاده از CDNهای داخلی انتخاب بهتریه، مگر اینکه مخاطبهاتون خارج از کشور باشن.
صحبت آخر
ما توی میهنوردپرس قبلاً از سروری با ۱۶ گیگابایت رم استفاده میکردیم، اما چون از CDN استفاده نمیکردیم، به مرور زمان با افزایش ترافیک سایت مجبور شدیم رم سرور رو تا ۱۲۸ گیگابایت ارتقا بدیم. با این حال، همچنان این ارتقا بهتنهایی جوابگوی حجم بالای درخواستها نیست و به همین دلیل داریم بهصورت جدی تحقیق میکنیم تا یه سرویس CDN مناسب انتخاب کنیم و ازش استفاده کنیم.
امیدوارم شما هم با انتخاب زیرساخت مناسب، بتونید سایتی سریع، امن و قابلاعتماد داشته باشید که همیشه در خدمت کاربراتون باشه. شاد و سربلند باشید.🙂