در این مقاله با افزایش سرعت سایت توسط شبکه های توزیع محتوا (CDN) آشنا خواهیم شد. وبسایتهای پیشرفته و اپلیکیشنها باید میزان قابلتوجهی از محتوای استاتیک را به کاربران نهایی برسانند. این محتوا شامل تصاویر، صفحات، اسکریپتهای جاوا و ویدئو است. هنگامی که تعداد و اندازهی این محتوای استاتیک افزایش مییابد، استفاده از پهنای باند بیشتر شده، سرعت بارگذاری صفحه افزایش یافته و در نتیجه سرعت دانلود هم کاهش پیدا میکند. این امر باعث شده تا تجربه مشتری شما کم شده و بهتدریج ظرفیت موجود در سرور شما کاهش پیدا کند. جهت جلوگیری از این اتفاقات میتوانید از یک (CDN (Content Delivery Network استفاده کنید تا دادهها را از طریق مجموعهای از سرورهای توزیعشده بهلحاظ جغرافیایی ذخیره کنید.
در این مقاله، ما ویژگیهای بهکارگیری CDN و نحوه کار آن و نیز مزایایی که میتواند برای برنامههای وب شما داشته باشد را بررسی میکنیم.
CDN چیست؟
شبکه توزیع محتوا (CDN)، یک گروه از سرورهایی است که بهلحاظ جغرافیایی بهصورت بهینه توزیع شدهاند تا محتوای استاتیک را بهدست کاربران نهایی برسانند.
افزایش سرعت سایت توسط شبکه های توزیع محتوا (CDN)
یک CDN شامل چندین نقطه حضور (PoPs) در چندین موقعیت است که هر کدام متشکل از چندین سرور است که دادهها را از مبدا یا سرور میزبان شما گرفته و آنها را ذخیره میکنند. هنگامی که یک کاربر از وبسایت شما دیدن میکند، درخواستهای او از طریق CDN به نزدیکترین سروری که محتوای استاتیک بر روی آن ذخیره شده است، فرستاده میشود. چنانچه محتوای استاتیک در نزدیکترین سرور ذخیره نشده باشد، CDN کاربر را به نزدیکترین سرور بعدی متصل خواهد کرد. CDN دارای یک حافظه یا (cache) از وبسایتهای با ترافیک بازدید متوسط است که یک نسخه از آن را در اختیار کاربران نهایی قرار میدهد.
افزایش سرعت سایت توسط شبکه های توزیع محتوا (CDN)
این به کاربران در مناطق جغرافیایی پراکنده اجازه میدهد تا محتوای استاتیک را بهراحتی دریافت کنند. نتیجهی آن کاهش قابل توجه در تاخیر، افزایش سرعت و بارگذاری بهتر صفحات وبسایت خواهد بود.
CDN چگونه کار میکند؟
هنگامی که یک کاربر وارد وبسایت شما میشود، ابتدا پاسخی از سرور DNS دریافت میکند که شامل آدرس IP میزبان وب شماست. سپس مرورگر آنها محتوای وبسایت را درخواست میکند که اغلب شامل تعدادی از فایلهای استاتیک از قبیل تصاویر، صفحات HTML، صفحات CSS و کدهای JavaScript است.
پس از آنکه دادههای استاتیک را بر سرورهای CDN آپلود کردید (آپلود دستی Push یا آپلود اتوماتیک Pull)، به وب سرور خود فرمان میدهید تا لینکها را با محتوای ثابت بازنویسی کند. اکنون این لینکها به فایلهای میزبانی توسط CDN متصل میشوند. چنانچه از یک CDM مانند وردپرس استفاده میکنید، این بازنویسی مجدد میتواند با استفاده از یک plugin مانند CDN Enabler اجرا شود.
اکثر CDNها پشتیبانی مناسبی را برای دامنههای custom فراهم میآورند که به شما اجازه میدهند تا بتوانید یک CNAME تحت دامنهی خود بسازید. پس از آنکه CDN یک درخواست از کاربر دریافت کرد، او را به نزدیکترین سرور به کاربر متصل میکند. این نقطه حضور (PoP) اغلب شامل یک یا چند سرور CDN است که در نزدیکترین دیتاسنتر به مکان جغرافیایی کاربر وجود دارند.
مزایای استفاده از CDN
تقریباً هر وبسایتی میتواند از مزایای CDN استفاده کند. بیشترین مزیت استفاده از CDN در انتقال پهنای باند از کارگزار سرور سایت به کارگزارهای CDN و درنتیجه کاهش تاخیر برای کاربران پراکنده از نظر جغرافیایی است. در این قسمت به برخی از مزایای CDN اشاره میکنیم:
تخلیه دادهها:
تخلیه دادههای استاتیک مانند تصاویر، ویدیو و غیره بر روی دیتاسنتر های سرورهای CDN میزان استفاده از پهنای باند سرور شما را کاهش خواهد داد. شبکههای توزیع محتوا برای خدمترسانی به محتوای استاتیک طراحی شدهاند و حال درخواست مشتری برای این محتوا از طریق سرورهای CDN ارئه داده خواهد شد. این مساله باعث خواهد شد تا اضافه بار از روی سرور شما کاهش پیدا کند.
کاهش تاخیر جهت بهبود تجربه مشتری:
اگر کاربران شما بهلحاظ جغرافیایی پراکنده باشند و بخش عمدهی ترافیک شما در نقاط دور دست قرار دارد، CDN میتواند تاخیر را بهوسیلهی ذخیرهی دادههای استاتیک بر روی حافظهی نزدیکترین سرور به کاربران کاهش دهد. با کاهش فاصله بین کاربران و محتوای استاتیک، شما بهراحتی میتوانید محتوا را به کاربرانتان تحویل داده و تجربهی آنها را با افزایش سرعت بارگذاری صفحات وب، بهبود دهید.
استفاده از CDN میتواند مزایای دیگری نظیر مدیریت ترافیک و جلوگیری از قطعی، کاهش هزینهها و افزایش امنیت را در پی داشته باشد.