خب امروز میخواهیم در بایت لرن شما را با واژه CDN که مخفف واژه Content Delivery Network میباشد آشنا کنم تا با مطالعه این مقاله بتوانید به درک عمیق و صحیحی نسبت به CDN و شبکه های تحویل محتوا برسید. اما پیش از شروع به بررسی موارد گفته شده ابتدا باید ببینیم که تعریف cdn از کجا شروع شد و چه تعریف تخصصی برای آن وجود دارد؟ در پاسخ به این سوال باید گفت که طبق تعریف اتحادیه بین المللی مخابرات به هر گونه شبکه ای که برای تحویل محتوای دیجیتالی بهینه سازی شده باشد شبکه تحویل محتوا می گویند. پس در ادامه با ما همراه باشید.
منظور از این بهینه سازی اینکه استفاده از اون بتونه در نهایت منجر به افزایش سرعت دسترسی به اطلاعات لازم باشه حالا اینکه چه ترفندی برای دسترسی به داده ها با سرعت بالا به کار رفته به این شکل هستش که وقتی یک شبکه cdn ساخته میشه سرورهایی در نقاط مختلف جهان و در کشورهای مختلف با طول جغرافیایی مشخص و تعیین شده ای کانفیگ و مستقر میشن و در نهایت با دریافت داده ها از سرور اصلی و ذخیره اون به صورت کش شده میان و بر اساس موقعیت جغرافیایی بازدیدکننده که بر اساس ISP مخابراتی کاربر شناسایی میشن داده ها رو از نزدیک ترین cdn به کاربر تحویل میدن تا بتونه با سرعت بیشتری به این داده ها دسترسی داشته باشه. به همین دلیل هست که اگر سایت هایی نظیر گوگل را که از CDN استفاده میکنند باز کنید میبینید که خیلی سریع در کوتاهترین زمان ممکن براتون بالا میاد اما در مقابل یک سایتی که سرور اون داخل کشور باشه و صفحه ای در حجم کم مثل گوگل داشته باشه میبینید که باز هم در مقایسه با گوگل دیرتر براتون باز میشه.
حالا که با یک مفهوم ساده و دید کوتاهی از CDN آشنا شدید در ادامه به بررسی کامل تر اون می پردازیم.
cdn چیست؟ و چه کاربردی دارد؟
همونطور که در بالا اشاره شد با استفاده از cdn میتونیم تا با سرعت بیشتری به داده های مورد نیاز دسترسی داشته باشیم. شبکه تحویل محتوا یا همون cdn با استفاده از سرورهایی که در سرتاسر دنیا توزیع شده و با توجه به موقعیت جغرافیایی کاربر از طریق نزدیکترین سرور به کاربر محتوای ذخیره شده را به وی ارائه می دهد. این سرویس در افزایش سرعت تحویل محتوا و پهنای باند در وب سایتهای با ترافیک بالا و وب سایتهای جهانی مانند گوگل، یاهو، فیس بوک و… بسیار تأثیرگذار است. cdn ها انواع مختلفی دارند که میتونند به صورت خصوصی صرفا برای یک کشور یا یک شرکت خاص در دسترس باشند مثل شبکه CDN چایناکش در کشور چین یا cdn گوگل که صرفا در اختیار خود گوگل قرار داره و مورد استفاده قرار میگیره و یا اینکه میتونند تا به صورت عمومی در دسترس باشند تا هرکسی که لازم داره از اون برای وبسایت خودش استفاده کنه که از مشهورترین این مورد میشه به CDN کلود فلر، آکادمی، آمازون و… اشاره کرد که اگر شما هم سایتی دارید که به سرعت بالای اون اهمیت میدین و همچنین با حملات به هاست و سرور سایتتون روبه رو هستید با استفاده از CDN میتونید تا علاوه بر افزایش سرعت بالای سایت امنیت اون رو هم در مقابل حملات افزایش دهید.
شرکتهای بزرگ اینترنتی برای کنترل ترافیک سایت و سرویسهای اینترنتی خودشون میان و از چندین سرور در نقاط مختلف جهان برای ذخیرهسازی و تحویل اطلاعات و امکانات خود در سراسر جهان استفاده میکنند. حالا این امر باعث میشه که کاربران مختلف در سراسر جهان در هنگام استفاده از سرویسهای آنها هیچگونه تفاوتی را حس نکنند و همگی با بالاترین سرعت ممکن از نزدیکترین سرور شرکت مورد بحث استفاده کنند. این امکان بسیاری از مزایای دیگه ای مثل امنیت، همیشه در دسترس بودن، پخش صحیح فشار بر روی چندین سرور و … را به همراه دارد. اینجاست که تکنولوژی CDN بسیار کارآمد میشود و میتواند به تمامی شرکتهای کوچک و وبمسترهای سایتهای خصوصی قدرت شرکتهای بزرگ را بدهد. این سرویس به این شکل کار میکنه که از روی اطلاعات قابل دانلود شدن سایت شما (مانند فایل کدهای CSS، فایل کدهای جاوااسکریپت، فایلهای مولتی مدیا و …) یک نسخه کپی بر روی nodes یا همون سرورهای مختلف خودش که در سراسر جهان داره ذخیره میکنه و بعد از اینکه کاربری وارد سایت شما میشه و نیاز به این اطلاعات داره همین داده های ذخیره شده روی سرور که به صورت اشتراکی به بسیاری از سایتها سرویس میدهند از نزدیکترین سرور یا node بر اساس موقعیت جغرافیایی بازدیدکننده دانلود و بهش تحویل داده میشن. پس وقتی کاربری با مرورگر خودش وارد سایت میشه اطلاعات از نزدیکترین سرور موجود به اون کاربر ارسال میشن و هر گاه هم سرور CDN به هر دلیلی در دسترس نباشند مشکلی وجود نداره و داده ها از سرور اصلی بارگزاری خواهند شد و تنها تفاوتی که وجود داره همین مبحث سرعت خواهد بود که مثل قبل بستگی به ترافیک سرور کمتر خواهد شد. چون این اطلاعات قبلاً در سرورهای CDN ثبت (Cache) شدهاند و نیاز به پروسه خاصی نیست تا در اون ثبت بشن با سرعت بیشتری برای بازدیدکننده در دسترس قرار گرفته و دانلود میشوند.
استفاده از cdn میتونه به هاست و سرور شما قدرت بیشتری ببخشه و مزایای بسیار زیادی را برای سایت و کسب و کاری که در اون از CDN استفاده می کنید براتون به ارمغان بیاره که از جمله این موارد میتوان به موارد زیر اشاره کرد:
- افزایش سرعت بارگذاری و نمایش صفحات وب در سیستم بازدید کنندگان به دلیل لود داده ها از نزدیک ترین cdn
- افزایش امنیت سایتها (چرا که بیشتر ارتباطها به صورت غیر مستقیم و محافظت شده هستند)
- افزایش میزان پهنای باند و کاهش مصرف ترافیک اصلی سرور، به عنوان مثال اگر سرور شما ۱۰ گیگابایت پهنای باند به شما ارائه میکند وقتی شما از یک CDN که دارای ۱۰ node است استفاده میکنید در حقیقت شما ۱۰ * ۱۰ گیگابایت به پهنای باند خود افزودهاید
- هزینه بسیار پایین برای استفاده به دلیل استفاده چندین نفر از سرورها
- نصب و راه اندازی ساده و آسان
- افزایش میزان بهینه سازی سایت در موتورهای جستجو نظیر گوگل
- راهکاری عالی برای جلوگیری از حملات DDOS به سرور سایت
- افزایش رضایت بازدیدکننده از سایت و کسب و کار شما به دلیل لود بسیار سریع سایت
اگر بخواهیم تا به صورت تصویری به شرح cdn بپردازیم تصویر زیر گویای کارکرد و نحوه رفتار cdn برای ذخیره داده ها و در نهایت تحویل محتوا به کاربران خواهد بود.
همونطور که در تصویر بالا مشاهده میکنید با اتصال یک سایت به سرور شبکه CDN داده های قابل ذخیره سازی اون مثل فایل های چند رسانه ای در سرتاسر شبکه cdn که در نقاط مختلف جهان قرار داره ذخیره میشوند، به عبارت دیگه وقتی شما اقدام به انتشار یک فیلم در سایت خودتون میکنید یک نسخه کش شده از این فیلم به تمامی سرورهایی که در این شبکه CDN وجود داره ارسال شده و در اونها ذخیره میشوند و سپس بازدید کننده بر اساس موقعیت جغرافیایی که به نزدیک ترین سرور CDN داره این داده ها رو میتونه با سرعت بیشتری به دلیل اینکه ترافیک کمی از اون هم اشغال شده از طریق همین سرورها دریافت و به اونها دسترسی داشته باشه. از طرف دیگه اگر حملاتی به سایت اتفاق بیفته و افرادی برای سوءاستفاده بیان تا به سرور سایت حمله کنن شکست خواهند خورد، چرا که cdn از این کار جلوگیری میکنه و درواقع وقتی حمله ای بخواد تا به سمت سایت صورت بگیره به cdn صورت میگیره و باید بتونن از cdn عبور کنند تا به سرور اصلی شما برای حملاتی مثل حملات DDOS برسند که این مورد هم امکان پذیر نیست.
رفتار یک شبکه CDN به چه شکلی خواهد بود؟
اگر بخواهیم تا به رفتارهایی که در یک شبکه CDN رخ میده تا داده ها رو در آخرین مرحله به کاربر نهایی که همون بازدیدکننده سایت ما هست برسونه میتونیم به شکل زیر به توضیح رفتار موجود در یک شبکه CDN بپردازیم که عبارتند از:
1- همونطور که در بالا اشاره شد، شبکه توزیع محتوا یا همون CDN تمامی سرورهای شبکه جهانی اینترنت را که در سرتاسر دنیا داره تحت پوشش قرار میده. بنابراین زمانیکه شما از سیستم CDN برای سایت خودتون استفاده کرده و اونو فعال میکنید، اطلاعات شما بر روی تک تک این سرورها که در سرتاسر جهان به صورت شبکه ای پخش شده و وجود دارند کپی و ذخیره میشود و زمانیکه یک بازدیدکننده به سایت یا وبلاگ شما وارد میشه محتوای سایت که میتونه شامل تصاویر، ویدئوها، فایل های CSS، فایل های جاوا اسکریپت و… باشه را از نزدیک ترین سرور نزدیک به خود دریافت کنه که این نزدیکی سرور بر اساس ISP مخابراتی کاربر بازدیدکننده به دست میاد؛ پس در این صورت بازدیدکننده مستقیما به هاست یا سرور شما متصل نیست. بنابراین این کار موجب بهبودی بسیار مناسبی در عملکرد سایت شما خواهد شد.
2- تمامی اطلاعاتی که قابل بهروزرسانی نیستند، در یک شبکه CDN قابل ذخیره هستند تا در طول این شبکه بزرگ در سرتاسر دنیا از نزدیک ترین سرور در اختیار کاربر قرار بگیرند. البته منظور از اطلاعاتی که به روزرسانی نمیشوند اینه که فایل هایی شامل تصاویر، جاوا اسکریپت، css و… هستند که نیازی به به روزرسانی ندارند اما سایر بخش ها که شامل محتوای صفحات میشه و از دیتابیس خونده میشن قابلیت ذخیره سازی در شبکه CDN رو ندارند و مستقیما از خود سرور بارگزاری میشوند. پس با این کار اگر هزینه ای که برای پهنای باند هاست یا سرور شما صرف میشه بیاییم و کم کنیم و از اون برای تهیه و فعال سازی یک شبکه CDN استفاده کنیم برای ما خیلی بهتر خواهد بود، چرا که ضمن کاهش مصرف پهنای باند مصرفی میتونیم امنیت سایتمونو در مقابل حملات DDOS افزایش بدهیم.
3- سرعت دسترسی به سایت در حالتی که CDN روی اون فعال نباشه در کشوری که سرور در اون قرار داره از بالاترین سرعت برخوردار خواهد بود، بنابراین وقتی که سرور سایت ما داخل ایران باشه و یک بازدیدکننده از کشوری مثل آمریکا بخواهد تا از سایت ما بازدید کنه نسبت به ما از سرعت پایینتری برخوردار خواهد بود، اما وقتی که ما بیایم و CDN را روی سایتمون فعال کنیم این سرعت چه در حالتی که بازدیدکننده در نزدیک ترین موقعیت سرور قرار داشته باشه و چه در حالتی که در دورترین موقعیت قرار داشته باشه از سرور به دلیل اینکه داده ها از نزدیک ترین سرور موجود در شبکه CDN لود میشوند از سرعت تقریبا یکسانی برخوردار خواهند بود و تفاوت خیلی محسوسی در این مورد وجود خواهد داشت. برای اینکه بخواهید تا به این موضوع برسید میتونید سایتی رو که از CDN استفاده کرده را توسط ابزاری مثل Pingdom یا GTmetrix تست کنید تا خودتون به این قضیه در حالت عملی پی ببرید.
آیا استفاده از CDN معایبی هم دارد؟
در پاسخ به این سوال باید گفت که استفاده از CDN برای سایت شما هیچ عیبی نداره و اکیدا توصیه میکنم تا از اون استفاده کنید، چرا که در صورت استفاده از CDN نه تنها چندین فاکتور مهم برای سئو و بهینه سازی سایت را دریافت میکنید، بلکه میتونید تا امنیت سایت خودتون رو هم بالا ببرید و با خیالی آسوده به فعالیت در سایت و به روزرسانی اون بپردازید. تنها چیزی که در CDN وجود داره و صد البته نمیشه اون رو به عنوان عیب و کاستی در نظر گرفت اینه که رایگان نیست. البته CDN های رایگان هم وجود دارند اما کلیه امکاناتی که یک CDN در اختیار شما قرار میگیره در اونها فعال نیست و باید هزینه ای رو برای فعال سازی چنین امکاناتی در اونها فعال کنید تا بتونید دسترسی لازم به اونها را داشته باشید.
توجه: در برخی از موارد بعد از استفاده کاربران سرویس های هاست اشتراکی میزبان فا از cdn های رایگان مانند کلود فلر مشاهده کرده ایم که کاربر توسط پورت 2082 نمی تواند وارد هاست سی پنل شود یا این که برخی از تراکنشات در درگاه های بانکی ایران بر روی سایت های ایرانی، در هنگام برگشت به سرور های اروپایی (هاست اروپا) با مشکل مواجه می شود، در هرصورت اگر پس از فعالسازی CDN بر روی سایتتون اگر شما هم با چنین مشکلاتی مواجه شدید می توانید مجددا dns های پیشفرض هاست را بر روی دامنه خود قرار دهید و به حالت عادی بازگردید.
چه تعداد CDN در سرتاسر جهان وجود داره؟
اینکه بشه گفت به صورت دقیق چندین شبکه CDN در جهان وجود داره نمیشه به قطع اون رو بیان کرد، چرا که تعداد شبکه های CDN به دلیل اینکه برای مصارف عمومی و خصوصی مورد استفاده قرار میگیرند در حال افزایش هستند. اما از جمله معروفترین شبکه های CDN میشه به مواردی مثل MaxCDN، VPS.net، Amazon Cloudfront، cloud Flare و… اشاره کرد که کلود فلر از جمله شبکه های CDN هست که با استفاده از اون میتونید تا از امکانات رایگانی که این CDN در اختیار شما قرار میده استفاده کنید. اما اگه قصد دارید تا هزینه صرف کنید و از یک شبکه CDN تجاری استفاده کنید در میان نمونه های ذکر شده بهترین شرایط هزینه ای را شبکه MaxCDN دارد.
معرفی CDN های رایگان
انواع مختلفی از شبکه های توزیع محتوا(CDN) در سرتاسر دنیا وجود دارد که هر کدوم از اینها بنا به امکاناتی که ارائه میدن نسخه های رایگانی رو هم دارند که میتونید از اونها استفاده کرده و برای دسترسی بیشتر به امکانات موجود نسخه تجاری اونها رو خریداری کنید. یکی از معروفترین این شبکه های توزیع محتوا مربوط مبشه به CDN کلودفلر (Cloudflare) که با استفاده از اون میتونید تا از امکانات رایگانی که به شما ارائه میده در سایتتون استفاده کنید و از مزایای اون بهرهمند بشین، که از جمله این مزیت ها میشه به جلوگیری از خرابکاری ها با حمله به سرور سایت، استفاده از سیستم کش برای توزیع فایل های سایت در سرتاسر سرورهای موجود این شبکه CDN در سرتاسر دنیا که یکی از شبکه های توزیع محتوا هستش که گستردگی فراوانی رو هم در سطح دنیا داره و مدام در حال گسترش پیدا کردن است. اگه تصمیم گرفتید تا از CDN کلودفلر برای سایتتون استفاده کنید میتونید از مقاله آموزش تصویری از استفاده از Cloud Flare جهت بهبود سرعت و امنیت استفاده کنید. یکی دیگه از سرویس های ارائه دهنده CDN رایگان سایت incapsula هستش که دارای سرور های قدرتمندی برای CDN میباشد ولی متاسفانه استفاده از این سایت برای ایران محدوده وامکان استفاده از آن برای کاربران ایرانی وجود ندارد.
اما اگر از سیستم مدیریت محتوای محبوب وردپرس برای سایتتون استفاده میکنید میتونید تا از افزونه رایگان jetpack استفاده کنید که امکان استفاده از شبکه CDN اختصاصی این شرکت رو در اختیار شما قرار میده و میتونید تا از اون به عنوان شبکه توزیع محتوا در سایت خودتون استفاده کنید.
امیدوارم این مقاله مورد رضایت شما قرار گرفته باشه ، بایت لرن یعنی بایت بایت اطلاعات جدید