سه شنبه 24 دسامبر 2024
شبکه های تحویل محتوا (CDN) به ویژه برای کاهش تأخیر وب سایت شما و به طور کلی دور نگه داشتن سردردهای مرتبط با ترافیک وب مناسب هستند. در نهایت این هدف اصلی آنهاست: تحویل سریع محتوای شما حتی اگر سایت شما دارای ترافیک زیادی باشد. “D” در CDN برای ارائه یا توزیع محتوا در سراسر جهان است، بنابراین زمان انتقال به کاربران شما نیز کمتر از میزبانی در یک مرکز داده در جایی است. در این پست ما قصد داریم نحوه استفاده از CDN ها را به گونه ای بررسی کنیم که خزیدن و تجربه کاربران در سایت شما را بهبود بخشد، و همچنین به برخی تفاوت های ظریف خزیدن در سایت های پشتیبانی شده CDN نگاه می کنیم.
خلاصه: CDN چیست؟
CDN ها اساسا یک واسطه بین سرور اصلی شما (محل زندگی وب سایت شما) و کاربر نهایی هستند و (برخی) فایل ها را برای آنها ارائه می کنند. از نظر تاریخی،
بزرگترین تمرکز CDN ها کش است، به این معنی که وقتی کاربر یک URL از سایت شما درخواست کرد، CDN ها محتوای آن URL را برای مدتی در حافظه پنهان خود ذخیره می کنند تا سرور شما مجبور نباشد برای مدتی دوباره آن فایل را ارائه دهد.
CDN ها می توانند سرعت سایت شما را به شدت افزایش دهند با ارائه خدمات به کاربران از مکانی نزدیک به آنها. مثلاً اگر کاربری در استرالیا به سایتی که در آلمان میزبانی شده است دسترسی داشته باشد، یک CDN از حافظه پنهان خود در استرالیا به آن کاربر سرویس می دهد و سفر رفت و برگشت به سراسر جهان را کاهش می دهد. سرعت نور یا نه، فاصله هنوز بسیار زیاد است.
و در نهایت،
CDN ها ابزاری فوق العاده برای محافظت از سایت شما در برابر بارگذاری بیش از حد و برخی تهدیدات امنیتی هستند. با میزان مدیریت CDN ترافیک جهانی، آنها می توانند مدل های ترافیکی قابل اعتمادی را برای شناسایی ناهنجاری های ترافیکی ایجاد کنند و دسترسی هایی را که بیش از حد یا مخرب به نظر می رسند مسدود کنند. به عنوان مثال، در 21 اکتبر 2024، سیستم های Cloudflare به طور خودکار 4.2 ترابیت بر ثانیه را شناسایی و کاهش دادند.
(اد: این خیلی زیاد است) حمله DDoS که حدود یک دقیقه طول کشید.
چگونه CDN ها می توانند به سایت شما کمک کنند
شما ممکن است سریعترین سرورها و بهترین آپلینکهایی را که میتوانید خریداری کنید داشته باشید و ممکن است فکر نکنید که نیازی به افزایش سرعت ندارید، اما CDNها میتوانند در درازمدت در هزینه شما صرفهجویی کنند، به خصوص اگر سایت شما بزرگ باشد:
- ذخیره در CDN: اگر منابعی مانند رسانه، جاوا اسکریپت، و CSS یا حتی HTML شما از حافظه نهان CDN ارائه می شود، سرورهای شما نیازی به صرف محاسبات و پهنای باند برای سرویس دهی به این منابع ندارند و بار سرور در این فرآیند کاهش می یابد. این معمولاً به این معنی است که صفحات در مرورگرهای کاربران سریعتر بارگذاری میشوند که با تبدیلهای بهتر مرتبط است.
-
حفاظت در برابر سیل ترافیک: CDN ها به ویژه در شناسایی و مسدود کردن ترافیک بیش از حد یا مخرب خوب هستند، و به کاربران شما اجازه می دهند از سایت شما بازدید کنند، حتی زمانی که ربات ها یا افرادی که خوب کار نمی کنند سرورهای شما را بارگذاری می کنند.
علاوه بر محافظت در برابر سیل، از همان کنترلهایی که برای جلوگیری از ترافیک بد استفاده میشود، میتوان برای مسدود کردن ترافیکی که به سادگی نمیخواهید نیز استفاده کرد، خواه خزندههای خاص، مشتریانی که در یک الگوی خاص قرار میگیرند، یا فقط ترولهایی که به استفاده از آن ادامه میدهند. آدرس IP. در حالی که می توانید این کار را روی سرور یا فایروال خود نیز انجام دهید، معمولاً استفاده از رابط کاربری CDN بسیار ساده تر است. - قابلیت اطمینان: برخی از CDN ها می توانند سایت شما را به کاربران ارائه دهند حتی اگر سایت شما از کار افتاده باشد. البته این ممکن است فقط برای محتوای ثابت کار کند، اما ممکن است برای اطمینان از اینکه کسب و کار خود را به جای دیگری نمی برند، کافی است.
به طور خلاصه، CDN ها دوست شما هستند و اگر سایت شما بزرگ است یا انتظار دارید (یا حتی از قبل دریافت می کنید!) حجم زیادی از ترافیک را داشته باشید، ممکن است بخواهید مطابق با نیازهای شما بر اساس عواملی مانند قیمت، عملکرد، قابلیت اطمینان پیدا کنید. ، امنیت، پشتیبانی مشتری، مقیاس پذیری، توسعه آینده. برای اطلاع از گزینه های خود (و اینکه آیا قبلاً از یکی از آنها استفاده می کنید یا خیر) با ارائه دهنده هاست یا CMS خود تماس بگیرید.
چگونه خزیدن بر سایت های دارای CDN تأثیر می گذارد
در بخش خزیدن، CDN ها نیز می توانند مفید باشند، اما می توانند باعث برخی مشکلات خزیدن شوند (البته به ندرت). با ما همراه باشید.
تأثیر CDN بر نرخ خزیدن
زیرساخت خزنده ما طوری طراحی شده است که نرخ خزیدن بالاتری را در سایتهایی که توسط CDN پشتیبانی میشوند، امکانپذیر میسازد، که از آدرس IP سرویسی استنباط میشود که URLهایی را که خزندههای ما به آنها دسترسی دارند ارائه میدهد. این حداقل در بیشتر مواقع به خوبی کار می کند.
بگویید، امروز یک سایت عکس سهام راه اندازی می کنید و اتفاقاً 1,000,007 عکس در انبار دارید. شما وب سایت خود را با صفحه فرود، صفحات دسته بندی و صفحات جزئیات برای همه موارد خود راه اندازی می کنید – بنابراین در نهایت صفحات زیادی خواهید داشت. ما در اسناد خود درباره محدودیت ظرفیت خزیدن توضیح میدهیم که اگرچه جستجوی Google میخواهد همه این صفحات را در سریعترین زمان ممکن بخزد، خزیدن نیز نباید سرورهای شما را تحت تأثیر قرار دهد. اگر هنگام مواجهه با تعداد فزاینده درخواستهای خزیدن، سرور شما به کندی پاسخ میدهد، در سمت Google برای جلوگیری از بارگیری بیش از حد سرور شما، throttling اعمال میشود. زمانی که زیرساخت خزنده ما تشخیص میدهد که سایت شما توسط CDN پشتیبانی میشود، آستانه این throttling بسیار بالاتر است و فرض میکند که ارسال درخواستهای همزمان بیشتر خوب است زیرا سرور شما به احتمال زیاد میتواند آن را مدیریت کند، بنابراین فروشگاه اینترنتی شما سریعتر خزیده میشود.
با این حال، در اولین دسترسی به URL، حافظه پنهان CDN “سرد” است، به این معنی که از آنجایی که هنوز کسی آن URL را درخواست نکرده است، محتویات آن هنوز توسط CDN ذخیره نشده است، بنابراین سرور مبدا شما همچنان به ارائه آن URL در آدرس اینترنتی نیاز دارد. حداقل یک بار برای “گرم کردن” کش CDN. این نیز بسیار شبیه به نحوه عملکرد حافظه پنهان HTTP است.
به طور خلاصه، حتی اگر فروشگاه اینترنتی شما توسط CDN پشتیبانی می شود، سرور شما باید حداقل یک بار آن 1000007 URL را ارائه دهد. تنها پس از آن سرویس اولیه، CDN شما میتواند به شما در مورد حافظه پنهان خود کمک کند. این یک بار قابل توجه برای “بودجه خزیدن” شما است و نرخ خزیدن احتمالاً برای چند روز بالا خواهد بود. اگر قصد دارید چندین URL را همزمان راه اندازی کنید، این را در نظر داشته باشید.
تأثیر CDN ها بر رندرینگ
همانطور که در اولین پست وبلاگ خزیدن دسامبر در مورد خزیدن منابع، تقسیم منابع به نام میزبان خود یا نام میزبان CDN توضیح دادیم (cdn.example.com
) ممکن است به سرویس رندر وب ما (WRS) اجازه دهد تا صفحات شما را کارآمدتر ارائه دهد. این با یک هشدار همراه است: این عمل ممکن است بر عملکرد صفحه به دلیل سربار اتصال به نام میزبان متفاوت تأثیر منفی بگذارد، بنابراین باید تجربه صفحه را با عملکرد رندر به دقت در نظر بگیرید.
اگر میزبان اصلی خود را با CDN پشتیبان میدهید، از این مشکل جلوگیری میکنید: یک نام میزبان برای پرسوجو، و منابع رندر حیاتی احتمالاً از حافظه پنهان CDN ارائه میشوند، بنابراین سرور شما نیازی به سرویس دادن به آنها ندارد (و بدون تجربه صفحه ).
در پایان، راه حلی را انتخاب کنید که برای کسب و کار شما بهترین کارایی را دارد: یک نام میزبان جداگانه (cdn.example.com
) برای منابع استاتیک، نام میزبان اصلی خود را با یک CDN پشتیبان دهید یا هر دو را انجام دهید. زیرساخت خزنده گوگل از هر دو گزینه بدون مشکل پشتیبانی می کند.
زمانی که CDN ها بیش از حد محافظ هستند
با توجه به محافظت در برابر سیل CDN ها و نحوه خزیدن خزنده ها، گاهی اوقات ربات هایی که در سایت خود می خواهید ممکن است در لیست بلاک CDN شما قرار گیرند، معمولاً در فایروال برنامه وب آنها (WAF). این مانع از دسترسی خزنده ها به سایت شما می شود که در نهایت ممکن است از نمایش سایت شما در نتایج جستجو جلوگیری کند. این بلوک می تواند به طرق مختلفی اتفاق بیفتد، برخی از آنها برای حضور یک سایت در نتایج جستجوی گوگل مضرتر از سایرین است، و کنترل آن برای شما ممکن است دشوار (یا غیرممکن) باشد زیرا در انتهای CDN اتفاق می افتد. برای هدف این پست وبلاگ ما آنها را در دو سطل قرار می دهیم: بلوک های سخت و بلوک های نرم.
بلوک های سخت
بلوکهای سخت زمانی هستند که CDN پاسخی به درخواست خزیدن ارسال میکند که به شکلی یک خطا است. اینها می توانند:
-
HTTP
503
/429
کدهای وضعیت: ارسال این کدهای وضعیت بهترین راه برای سیگنال انسداد موقت است. این به شما زمان می دهد تا به بلوک های ناخواسته CDN واکنش نشان دهید. - وقفه های زمانی شبکه: مهلت زمانی شبکه از CDN باعث می شود URL های آسیب دیده از فهرست جستجوی Google حذف شوند، زیرا این خطاهای شبکه به عنوان خطاهای پایانی و “سخت” در نظر گرفته می شوند. علاوه بر این، ممکن است به طور قابل توجهی بر نرخ خزیدن سایت شما تأثیر بگذارند زیرا به زیرساخت خزیدن ما نشان می دهند که سایت بیش از حد بارگذاری شده است.
-
پیام خطای تصادفی با HTTP
200
کد وضعیت: همچنین به عنوان خطاهای نرم شناخته می شود، این به خصوص بد است. اگر پیام خطا در انتهای Google با یک خطای “سخت” (مثلاً یک HTTP) برابر باشد500
)، گوگل URL را از جستجو حذف خواهد کرد. اگر Google نتواند پیامهای خطا را بهعنوان خطاهای «سخت» تشخیص دهد، ممکن است همه صفحات دارای پیام خطای مشابه بهعنوان موارد تکراری از فهرست جستجوی Google حذف شوند. از آنجایی که نمایه سازی گوگل انگیزه کمی برای درخواست جستجوی مجدد URL های تکراری دارد، بازیابی از این امر ممکن است زمان بیشتری را ببرد.
بلوک های نرم
هنگامی که CDN شما آن مطالب بینابینی “آیا مطمئن هستید که یک انسان هستید” را نشان می دهد، ممکن است یک مشکل مشابه ظاهر شود (جناسی که بسیار مورد توجه قرار گرفته است).
خزندههای ما در واقع متقاعد شدهاند که انسان نیستند و وانمود نمیکنند که یک انسان هستند. آنها فقط می خواهند بخزند. با این حال، هنگامی که بینابینی نمایش داده می شود، این تنها چیزی است که آنها می بینند، نه سایت عالی شما. در مورد این میانافزارهای تأیید ربات، اکیداً توصیه میکنیم یک سیگنال واضح در قالب یک کد وضعیت HTTP 503 برای مشتریان خودکار مانند خزندهها ارسال کنید که محتوا موقتاً در دسترس نیست. این تضمین می کند که محتوا به طور خودکار از فهرست گوگل حذف نمی شود.
رفع اشکال انسدادها
در صورت انسداد سخت و نرم، ساده ترین راه برای بررسی اینکه آیا کارها به درستی کار می کنند استفاده از ابزار URL Inspection در کنسول جستجو و مشاهده تصویر رندر شده است: اگر صفحه شما را نشان می دهد، شما خوب هستید. اگر صفحه خالی، خطا یا صفحه ای با چالش ربات را نشان می دهد، ممکن است بخواهید در مورد آن با CDN خود صحبت کنید.
علاوه بر این، برای کمک به رفع این انسدادهای ناخواسته، Google، سایر موتورهای جستجو و سایر اپراتورهای خزنده آدرس های IP ما را منتشر می کنند تا به شما کمک کنند خزنده های ما را شناسایی کنید و اگر فکر می کنید مناسب است، IP های مسدود شده را از قوانین WAF یا حتی لیست مجاز حذف کنید. آنها جایی که می توانید این کار را انجام دهید بستگی به CDN مورد استفاده شما دارد. خوشبختانه اکثر CDN ها و WAF های مستقل اسناد فوق العاده ای دارند. در اینجا مواردی وجود دارد که می توانیم با کمی جستجو پیدا کنیم (تا زمان انتشار این پست):
اگر نیاز دارید که سایت شما در موتورهای جستجو نمایش داده شود، ما قویاً توصیه می کنیم بررسی کنید که آیا خزنده های مورد علاقه شما می توانند به سایت شما دسترسی داشته باشند یا خیر. به یاد داشته باشید که IP ها ممکن است به طور خودکار و بدون اطلاع شما در لیست بلاک قرار گیرند، بنابراین بررسی لیست های بلاک هر از گاهی ایده خوبی برای موفقیت سایت شما در جستجو و فراتر از آن است. اگر فهرست بلاکها بسیار طولانی است (مشابه این پست وبلاگ نیست)، به جای جستجو، برای مثال، سعی کنید فقط چند بخش اول محدوده IP را جستجو کنید. 192.168.0.101
شما فقط می توانید به دنبال 192.168
.
این آخرین پست در سری پست های وبلاگ خزنده دسامبر ما بود، امیدواریم همانطور که ما دوست داشتیم از نوشتن آنها لذت ببرید. اگر داری… بلا بلا بلا… تو دریل را می دانی.
ارسال شده توسط مارتین اسپلیت و گری ایلیس
آیا می خواهید در مورد خزیدن بیشتر بدانید؟ کل مجموعه Crawling دسامبر را ببینید: