شبکه توزیع محتوا سایت شما را سریع نمی کند، نزدیک می کند. و اگر تنظیمش درست نباشد، حتی نزدیک هم نمی کند و شما ماه ها فکر می کنید کار می کند.
این را از روی سایت خودمان می نویسیم، چون دقیقا همین حالت را روی rgb.ir پیدا کردیم.
چیزی که روی سایت خودمان دیدیم
سایت ما پشت کلادفلر است و هدر cdn-cache-control: max-age=2592000 می فرستد، یعنی به شبکه می گوید این صفحه را سی روز نگه دار. ولی جواب کلادفلر این است:
$ curl -sI https://rgb.ir/ | grep -i cf-cache-status
cf-cache-status: DYNAMIC
مقدار DYNAMIC یعنی این صفحه اصلا کش نشده و هر بار تا سرور اصلی رفته است. سه آدرس مختلف را امتحان کردیم و هر سه همین را برگرداندند. یعنی چیزی که فکر می کردیم روشن است، روشن نیست.
این را ننوشتیم که اعتراف جالبی کرده باشیم. نوشتیم چون رایج ترین حالت خرابی شبکه توزیع محتوا همین است: هیچ چیز خراب به نظر نمی رسد. سایت بالا می آید، گواهی درست است، آدرس ها کار می کنند و هیچ خطایی هیچ جا ثبت نمی شود. تنها نشانه یک کلمه در یک هدر است که کسی نگاهش نمی کند.
یک دستور که وضعیت شما را می گوید
curl -sI https://example.com/ | grep -iE "cf-cache-status|x-cache|age:"
اگر HIT دیدید، صفحه از نزدیک ترین نقطه به کاربر آمده. اگر MISS دیدید، این بار نیامده ولی از این به بعد می آید. اگر DYNAMIC دیدید، هیچ وقت نمی آید و شبکه فقط دارد ترافیک را رد می کند بدون اینکه چیزی ذخیره کند.
تفاوت MISS و DYNAMIC جایی است که بیشتر آدم ها اشتباه می کنند. اولی موقتی است و دومی یعنی قانون کش شما اصلا این صفحه را نمی گیرد.
چند سایت ایرانی اصلا شبکه توزیع محتوا دارند
در ۲۴ مرداد ۱۴۰۵ هدرهای سی و هشت سایت ایرانی را خواندیم. توزیعش این است:
| شبکه | تعداد سایت |
|---|---|
| ابر آروان | ۵ |
| کلادفلر | ۴ |
| سایر شبکه های داخلی | ۲ |
| بدون شبکه توزیع محتوا | ۲۷ |
بیست و هفت سایت از سی و هشت سایت مستقیم از سرور خودشان جواب می دهند. این لزوما اشتباه نیست و در ادامه می گوییم چرا.
عددی که ما نداریم و هیچ کس هم منتشر نکرده
سوال واقعی شما این است که کدام یک برای بازدیدکننده ایرانی سریع تر است، و پاسخ صادقانه این است که ما نمی توانیم اندازه بگیریم.
سرور ما در هلسینکی است. اگر از اینجا زمان پاسخ ابر آروان و کلادفلر را بگیریم، فقط فاصله تا هلسینکی را سنجیده ایم نه چیزی که کاربر در تهران تجربه می کند. عدد به دست می آید، عدد قشنگی هم هست، و به درد نمی خورد.
پس اگر مقاله ای دیدید که جدول مقایسه سرعت شبکه های توزیع محتوا برای کاربر ایرانی دارد و نگفته اندازه گیری از کجا انجام شده، آن جدول احتمالا همین مشکل را دارد و نویسنده اش متوجه نشده. اندازه گیری معتبر این کار به نقاط سنجش داخل ایران نیاز دارد و ما نداریم.
پس شبکه توزیع محتوا چه چیزی را قطعا حل می کند
چهار چیز را می شود بدون اندازه گیری جغرافیایی هم گفت، چون به معماری مربوطند نه به مسافت.
بار روی سرور اصلی. وقتی فایل های ثابت از لبه شبکه سرو می شوند، سرور شما فقط درخواست های پویا را می بیند. برای سایتی که روی هاست اشتراکی است این تفاوت واقعی است و در اثر پیکربندی هاست روی سرعت و سئو نشان داده ایم چطور خودش را در عددها نشان می دهد.
پایداری در قطعی. اگر سرور اصلی بالا نیاید و صفحه در لبه کش شده باشد، بازدیدکننده همچنان صفحه را می گیرد. این فقط وقتی کار می کند که کش واقعا فعال باشد، که برمی گردیم به همان هدر بالا.
مصرف پهنای باند. ترافیک تصویر و فایل از سرور شما کم می شود و روی هاست هایی که پهنای باند محدود دارند مستقیم به پول ترجمه می شود.
گواهی و پروتکل. شبکه معمولا جدیدترین نسخه پروتکل و گواهی خودکار را می آورد، حتی اگر سرور اصلی قدیمی باشد.
و چه چیزی را حل نمی کند
سایتی که HTML چهارصد کیلوبایتی می فرستد، از پشت هر شبکه ای همان چهارصد کیلوبایت را می فرستد. شبکه توزیع محتوا حجم را کم نمی کند، فقط مسافتش را کوتاه می کند.
همین طور کوئری کند دیتابیس، افزونه ای که هر بار صفحه را دوباره می سازد، و تصویری که در ابعاد اصلی دوربین بارگذاری شده. اینها همه پشت شبکه دست نخورده باقی می مانند. اگر عددهای Core Web Vitals شما بد است و علتش جاوااسکریپت سنگین است، شبکه توزیع محتوا صفر تاثیر دارد.
کجا نباید سراغش بروید
اگر کل مخاطب شما در یک شهر ایران است و سرورتان هم داخل ایران است، شبکه توزیع محتوای خارجی احتمالا مسیر را بلندتر می کند نه کوتاه تر. ترافیکی که می توانست چند ده کیلومتر برود، از مرز رد می شود و برمی گردد.
حالت دوم سایت هایی هستند که تقریبا همه چیزشان پویا است، مثل پنل کاربری یا سبد خرید. آنجا چیزی برای کش کردن نیست و شبکه فقط یک لایه دیگر بین کاربر و سرور اضافه می کند.
و یک هشدار عملی: اگر شبکه توزیع محتوا اضافه کردید، لایه کش سایت را هم دوباره بررسی کنید. دو لایه کش که همدیگر را نمی شناسند باعث می شوند تغییری که در سایت می دهید ساعت ها به بعضی کاربران نرسد و شما فکر کنید ذخیره نشده.
سوال هایی که پرسیده می شود
کلادفلر رایگان کافی است؟ برای اکثر سایت های کوچک بله. تفاوت پلن رایگان و پولی بیشتر در قوانین پیشرفته و پشتیبانی است، نه در نزدیکی به کاربر.
شبکه توزیع محتوا روی سئو اثر دارد؟ غیرمستقیم. گوگل به اینکه از کجا سرو می شوید امتیاز نمی دهد، ولی اگر صفحه زودتر بیاید معیارهای تجربه صفحه بهتر می شوند. اثر از مسیر سرعت است، نه از خود شبکه.
چرا بعد از فعال کردن، سایتم کندتر شد؟ معمولا چون کش فعال نیست و فقط یک واسطه اضافه شده. همان دستور بالا را بزنید؛ اگر DYNAMIC دیدید، دلیلش را پیدا کرده اید.
اگر می خواهید بدانید سرعت سایتتان واقعا کجا گیر کرده و آیا شبکه توزیع محتوا اصلا مسئله شماست، این با حدس تعیین نمی شود؛ با اندازه گیری قبل و بعد تعیین می شود و بهینه سازی سرعت با گزارش قبل و بعد دقیقا همین است. برای سایتی که هنوز روی زیرساخت مناسبی نیست، میزبانی با پیکربندی درست نقطه شروع درست تری است، چون شبکه توزیع محتوا مشکل سرور کند را پنهان می کند نه حل. و اگر خود سایت سنگین ساخته شده، هیچ لایه ای جای ساخت سایت سبک از ابتدا را نمی گیرد.
هدرهای سی و هشت سایت و وضعیت کش سایت خودمان در ۲۴ مرداد ۱۴۰۵ خوانده شده و با همان دستور بالا قابل تکرار است. وضعیت کش ما تا وقتی این را می خوانید ممکن است اصلاح شده باشد؛ عدد آن روز این بود.
دیدگاه ها و پرسش ها
سوالی درباره این مطلب دارید؟ بپرسید؛ پاسخ می دهیم.
هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید.