CDN چیست و چطور سرعت و دسترسپذیری سایت را بالا میبرد؟
CDN چیست، چه فرقی با هاست دارد و چرا برای سایتهای ایرانی فقط بحث سرعت نیست؟ راهنمای کامل نود لبه، کش و دسترسپذیری با مثال عملی.
اگر تا حالا به شما گفتهاند «سایتت را روی CDN ببر»، احتمالاً توضیح دقیقی همراهش نبوده. CDN نه هاست جدید است، نه افزونه سرعت، و نه درمان یک دیتابیس کند. این مقاله دقیقاً میگوید CDN چیست، در یک درخواست واقعی چه اتفاقی میافتد، چه کارهایی از آن برنمیآید، و چرا در ایران ماجرا فراتر از سرعت است.
سی دی ان چیست؟
CDN مخفف Content Delivery Network یا «شبکه توزیع محتوا» است: مجموعهای از سرورها در نقاط جغرافیایی مختلف که بین کاربر و سرور اصلی شما مینشینند. وقتی دامنهای روی CDN میآید، مرورگر کاربر دیگر با سرور شما حرف نمیزند؛ با نزدیکترین نود این شبکه حرف میزند.
از نظر فنی، هر نود لبه یک reverse proxy است که دو کار انجام میدهد:
- تحویل از کش — اگر نسخه معتبری از آن صفحه یا فایل را دارد، همانجا جواب میدهد و اصلاً سراغ سرور شما نمیرود.
- واسطهگری — اگر نسخهای ندارد یا محتوا پویاست، خودش به سرور اصلی وصل میشود، پاسخ را میگیرد و به کاربر میرساند.
بقیه قابلیتها روی همین ساختار سوار میشوند: HTTPS، فایروال، محدودیت نرخ درخواست، لاگ زنده و مسیریابی بین چند مبدأ.
Origin و Edge: تفاوت در یک جمله
Origin یا مبدأ، همان جایی است که کد، دیتابیس و فایلهای واقعی سایت شما روی آن قرار دارد — هاست اشتراکی، VPS یا هر سرور ابری. مرجع نهایی دادهها همیشه همینجاست.
Edge یا نود لبه، کپی موقت محتوا را نگه میدارد و به کاربران نزدیکتر است. نود لبه کد شما را اجرا نمیکند و به دیتابیس شما دسترسی ندارد؛ فقط تحویل میدهد.
این تفکیک تعیین میکند کدام مشکل با CDN حل میشود: «فاصله»، «بار» و «دسترسی» در لبه حل میشوند؛ «کوئری سنگین» در مبدأ میماند.
مسیر یک درخواست، مرحلهبهمرحله
فرض کنید کاربری در شیراز سایت شما را باز میکند.
۱) DNS جواب میدهد
مرورگر اول باید بداند به کجا وصل شود. رکورد A یا CNAME دامنه شما بهجای IP سرور اصلی، به شبکه CDN اشاره میکند. اگر با انواع رکوردها آشنا نیستید، راهنمای رکوردهای DNS دقیقاً همین بخش را باز میکند. تا این مرحله درست نشود، هیچکدام از مراحل بعدی اتفاق نمیافتد.
۲) اتصال به نزدیکترین نود لبه
پاسخ DNS کاربر را به نزدیکترین نود در دسترس هدایت میکند. کل TLS handshake همانجا روی لبه تمام میشود — یعنی رفتوبرگشتهای پرهزینه شروع اتصال، بهجای مسیر طولانی تا سرور اصلی، کوتاه میشوند.
۳) cache hit یا cache miss
نود لبه برای هر درخواست یک «کلید کش» میسازد؛ معمولاً ترکیبی از متد، هاست، مسیر و کوئریاسترینگ. بعد یکی از این دو حالت رخ میدهد:
- HIT — نسخه معتبر موجود است و همان لحظه تحویل میشود. سرور شما اصلاً خبردار نمیشود.
- MISS — نسخهای نیست یا منقضی شده؛ باید به مبدأ مراجعه شود.
اینکه چه چیزی و چقدر کش شود، با هدرهای استاندارد HTTP کنترل میشود:
| هدر | کارش چیست |
|---|---|
Cache-Control: max-age=3600 | محتوا به مدت TTL=3600 ثانیه معتبر است |
Cache-Control: no-store | هرگز کش نشود (صفحات حساب کاربری، سبد خرید) |
ETag / Last-Modified | امکان اعتبارسنجی و پاسخ HTTP 304 بدون انتقال دوباره بدنه |
Vary | تفکیک نسخههای کش بر اساس هدری مثل زبان یا Origin |
سازوکار کامل این لایه را در کش CDN چطور کار میکند با جزئیات آوردهایم.
۴) رفتن سراغ Origin و ذخیره پاسخ
در حالت MISS، نود لبه بهجای کاربر به سرور اصلی وصل میشود، پاسخ را میگیرد، طبق سیاست کش ذخیرهاش میکند و به کاربر میدهد. کاربر بعدی که همان صفحه را بخواهد، دیگر HIT میگیرد. در nsin این سیاستها per-rule تعریف میشوند: میتوانید برای یک مسیر کش تهاجمی بگذارید، برای مسیر دیگر کاملاً bypass کنید، و هر وقت خواستید purge بزنید.
CDN سرعت را از «فاصله» میگیرد، نه از سرور شما؛ اگر منطق سایت کند باشد، لبه فقط کندی را سریعتر تحویل میدهد.
سایت بدون CDN در برابر سایت پشت CDN
| موضوع | بدون CDN | با CDN |
|---|---|---|
| تأخیر (latency) | هر درخواست تا سرور اصلی میرود؛ فاصله جغرافیایی مستقیماً در زمان پاسخ ظاهر میشود | محتوای کششده از نزدیکترین نود تحویل میشود و رفتوبرگشتهای اتصال کوتاه میشوند |
| بار روی Origin | تصاویر، CSS، JS و صفحات ثابت همگی به سرور شما فشار میآورند | بخش عمده ترافیک در لبه جذب میشود و سرور فقط درخواستهای واقعی را میبیند |
| دسترسپذیری | قطعی یا کندی سرور یعنی قطعی سایت | حتی وقتی مبدأ در دسترس نیست، نسخه کششده سرو میشود؛ failover بین چند مبدأ هم ممکن است |
| SSL | نصب و تمدید دستی روی هر سرور، با ریسک انقضای گواهی | گواهی رایگان با تمدید خودکار که از لبه سرو میشود |
| سطح حمله | IP سرور مستقیماً در معرض است؛ هر بات و هر flood به مبدأ میرسد | لبه اولین نقطه برخورد است؛ WAF، rate limiting و mitigation جلوتر از سرور شما عمل میکنند |
لایه امنیتی این جدول موضوع مستقلی است که جداگانه در WAF و محافظت در برابر DDoS بررسی شده است.
CDN چه کارهایی نمیکند
بیشتر سوءتفاهمها همینجا شکل میگیرد.
جایگزین هاست نیست
CDN سایت شما را میزبانی نمیکند. اگر سرور اصلی خاموش شود و محتوایی هم در کش نباشد، چیزی برای تحویل وجود ندارد. سرو کردن نسخه کششده در زمان قطعی مبدأ یک تور نجات موقت است، نه جایگزین میزبانی.
بکاپ نیست
کش حافظهای موقت است؛ منقضی میشود، برای باز شدن جا از حافظه بیرون انداخته میشود و با یک purge پاک میشود. هیچوقت آن را نسخه پشتیبان فایلهایتان حساب نکنید.
دیتابیس کند را سریع نمیکند
اگر تولید یک صفحه در سرور شما چند ثانیه طول میکشد، در حالت MISS همان چند ثانیه را کاربر هم میبیند. CDN زمان انتقال را کم میکند، نه زمان پردازش. برای صفحات پویا اول باید کوئری و کد را درست کرد، بعد سراغ کش رفت.
همهچیز را نباید کش کرد
پنل کاربری، سبد خرید و پاسخهای شخصیسازیشده باید bypass شوند؛ کش کردن نادرست این مسیرها خطرناکتر از نداشتن کش است.
زاویه ایرانی: CDN فقط سرعت نیست، دسترسپذیری است
در ایران معادله متفاوت است. مشکل رایج سایتها این نیست که «کند است»؛ این است که از بعضی مسیرها اصلاً باز نمیشود. اختلال شبکه و مسیریابی ناپایدار بینالملل باعث میشوند سایتی کاملاً سالم روی سرور ایرانی، از بیرون مرز در دسترس نباشد.
اینجا CDN نقش «مسیر جایگزین» را بازی میکند. وقتی درخواستها از شبکه لبه عبور میکنند، مسیر کاربر خارجی تا محتوای شما دیگر به یک لینک شکننده وابسته نیست. مهمتر از آن، خزنده گوگل هم از همان مسیر میآید؛ اگر Googlebot در بازههای اختلال به سایت شما نرسد، صفحات از ایندکس میافتند و افت رتبه، ماهها بعد جبران میشود. این موضوع و اثرش روی رتبه را در دسترسی Googlebot از ایران کامل توضیح دادهایم.
تمرکز nsin دقیقاً همینجاست: در دسترس نگه داشتن مبدأ ایرانی از بیرون، و باز نگه داشتن مسیر خزش گوگل در زمان اختلال.
چه کسی به CDN نیاز دارد؟
- فروشگاههای آنلاین — که یک ساعت قطعی، مستقیم به فروش ضربه میزند.
- سایتهای محتوایی و خبری — با ترافیک ناگهانی و حجم بالای تصویر.
- سرویسهای SaaS و API — که به دسترسپذیری پایدار و WebSocket تعهد دادهاند.
- هر سایتی با مخاطب خارج از ایران — که مسئلهاش قبل از سرعت، «باز شدن» است.
- سایتهای وردپرسی روی هاست اشتراکی — که با جذب فایلهای ثابت در لبه، بار سرور پایین میآید.
اگر بازدید محدودی دارید و همه کاربرانتان در یک شهر هستند، CDN اولویت اول شما نیست؛ سرور بهتر است. و اگر به این نتیجه رسیدید که به CDN نیاز دارید، معیارهای سنجش سرویسها را در راهنمای انتخاب CDN جمع کردهایم.
پرسشهای متداول
CDN چیست و چه فرقی با هاست دارد؟
هاست جایی است که فایلها و دیتابیس سایت شما زندگی میکنند. CDN لایهای جلوی هاست است که کپی محتوا را نزدیک کاربر نگه میدارد و تحویل میدهد. CDN بدون هاست بیمعناست؛ هاست بدون CDN فقط کندتر و شکنندهتر است.
آیا CDN برای سایتهای کوچک هم لازم است؟
اگر کاربران شما پراکندهاند یا سایت باید همیشه بالا باشد، بله. مزیت اصلی برای سایت کوچک، کم شدن بار هاست اشتراکی و داشتن SSL خودکار و فایروال است، نه چند میلیثانیه سرعت.
آیا CDN به سئوی سایت ضرر میزند؟
نه. تا وقتی محتوا یکسان سرو شود و ریدایرکتها و canonical درست باشند، گوگل مشکلی با CDN ندارد. اثر خالص معمولاً مثبت است، چون LCP بهتر میشود و صفحات در زمان اختلال هم برای خزنده در دسترس میمانند.
راهاندازی CDN باعث قطعی سایت میشود؟
اگر مرحلهای جلو بروید، نه. مسیر امن این است: اول TTL رکوردها را در سرویس DNS فعلی پایین بیاورید و دستکم به اندازه TTL قبلی صبر کنید، بعد رکوردها را کامل در پنل بسازید و صحتشان را بسنجید، بعد نیمسرورها را عوض کنید و با لاگ زنده ترافیک را زیر نظر بگیرید.
قدم بعدی
سراغ CDN رفتن یک تصمیم معماری است، نه نصب یک افزونه. اول مشخص کنید مشکل شما کدام است: فاصله، بار، امنیت یا دسترسپذیری. جزئیات فنی هر قابلیت، از قواعد کش تا override کردن هدر Host، در مستندات nsin آمده است.
برای امتحان عملی، دامنهتان را در پنل nsin اضافه کنید؛ هر دامنه جدید هفت روز نسخه کامل Enterprise را رایگان دارد و همین بازه برای دیدن نرخ hit کش و رفتار واقعی مبدأ کافی است.