روش حل مشکل لود بالای سرور به دلیل bot indexing
اگر تیم پشتیبانی فنی به دلیل مشکل لود بالای سایت یا سرور با شما تماس گرفت، این موضوع میتواند دلایل مختلفی داشته باشد، از جمله:
وبسایت شما میزبان تعداد بالایی از بازدیدکنندگان است
وبسایت یا سرور شما مورد حمله DDOS گرفته است
موتورهای جستجو یا باتها ممکن است بیش از حد سایت شما را خزش کنند
در این مقاله از مجله آموزشی هاست ایران به شما خواهیم گفت که اگر باتها عامل لود بالای سرور باشند، شما باید چهکاری در این راستا انجام دهید تا بتوانید سریعتر مشکل را حل کنید.
بات چیست؟
بات یا عنکبوت وب یک نرمافزار کاربردی است که وظایف تکراری و خودکار را از طریق اینترنت انجام میدهد. موتورهای جستجو مانند گوگل، از این باتها برای ردیابی وبسایتها و جمعآوری اطلاعات در وبسایت استفاده میکنند. در هنگام خزش یک سایت توسط بات، از همان منابعی که یک بازدیدکننده معمولی استفاده میکند استفاده خواهد شد که از جمله این منابع میتوان به پهنای باند و منابع سرور اشاره کرد.
مقاله مرتبط: خزنده موتور جستجو -کراولر- چیست؟ کرولر چگونه کار میکنند؟
البته همه باتها خوش ذات نیستند و برخی باتها به دلایل نامطلوب مانند دریافت آدرس ایمیل برای اسپم یا جستجوی آسیبپذیریها برای سو استفاده، اقدام به بررسی سایتها میکنند.
شناسایی ترافیک ربات
روشهای متعددی برای شناسایی ترافیک بات در سایت یا سرور شما وجود دارد. یکی از سادهترین روشها برای انجام این کار این است که از ابزاری مانند AWStats استفاده کنید. AWStats گزارشهایی در مورد ترافیک بات و بازدیدکنندگان رباتها/اسپایدرها را ارائه میدهد. این گزارش هر باتی که سایت شما را خزش کرده است، تعداد بازدیدها، مقدار پهنای باند مصرف شده و تاریخ آخرین خزش را نشان میدهد. پهنای باند مصرفی توسط بات نباید از چند مگابایت در ماه تجاوز کند.
اگر AWStats اطلاعاتی که میخواهید را در اختیارتان قرار نمیدهد، همواره میتوانید به سایت یا فایلهای لاگ سرور نگاهی بیاندازید. هر بازدید، چه توسط انسان انجام شود یا ربات، بهعنوان یک ورودی در فایلهای لاگ ثبت میشود. از جمله مهمترین اطلاعات ذخیره شده در ورودی لاگها میتوان به موارد زیر اشاره کرد:
منبع آدرس IP: آدرس IP از جایی که درخواست شده است
تاریخ ثبت درخواست: تاریخ و زمانی که درخواست ایجاد شده است
صفحه درخواست شده: در صورت ورود وب سرور، صفحهای که از آن بازدید شده است
کاربر: نام نرمافزاری که درخواست از طریق آن به ثبت رسیده است. برای کاربران عادی، این معمولاً نام مرورگر یا نسخه آن است، اما برای باتها، نام خود بات ثبت میشود.
با استفاده از این اطلاعات، بهخصوص کاربر و منبع آدرس IP، بهراحتی میتوانید بازدیدکنندگان عادی را از باتها تشخیص دهید. سایر اطلاعات مانند صفحه درخواست شده نیز میتوانند کمک کننده باشند؛ زیرا که باتها بهطور کلی به صفحات دسترسی دارند و مواردی مانند تصاویر، جاوا اسکریپت و غیره را حذف میکنند.
باتهای قانونی که توسط موتورهای جستجو استفاده میشوند، اسامی متمایزی دارند و بهراحتی قابل شناسایی هستند؛ مانند Googlebot و Bingbot. بات موتور جستجوی یاهو نیز Slurp نام دارد.
اما از آنجایی که باتهای مخرب از قواعد بازی باتهای قانونی پیروی نمیکنند، شناسایی آنها بسیار سختتر است. برای مثال، رباتهای مخرب ممکن است با استفاده از همان اطلاعات کاربر یا اطلاعاتی شبیه به آن، خود را در قالب سایر باتها یا مرورگرهای وب جا بزنند. البته شناسایی این دسته از باتها با استفاده از روشهای زیر ممکن است:
انجام جستجوی DNS معکوس در آدرس IP منبع باید نام میزبان ربات را به شما بدهد. تمام آدرسهای IP باتهای موتورهای جستجو باید به یک نام میزبان مشخص متصل باشند. برای مثال، Googlebot به googlebot.com یا google.com متصل است.
باتهای مخرب معمولاً از استانداردهای سایر باتها تخطی میکنند؛ بنابراین اگر باتهایی را یافتید که از صفحاتی که باید حذف شوند بازدید میکنند، این نشان میدهد که این بات یک بات بد است.
باتها چگونه میتوانند بار سرور را افزایش دهند؟
باتهای مخرب بهعنوان بخشی از پازل حملات DDOS میتوانند بهصورت عمدی باعث بالا رفتن استفاده از منابع سرور شوند. این میتواند شامل بازدید از سایت با هزاران درخواست همزمان یا روانه کردن سیلی از درخواستهای بزرگ به سرور باشد.
باتهای قانونی معمولاً یک مقدار مدیریت شده از منابع را مصرف میکنند، البته در برخی موارد باتهای قانونی نیز میتوانند مقدمات افزایش استفاده از منابع سرور را فراهم کنند؛ مانند:
وقتیکه تعداد زیادی محتوای جدید به سایت اضافه شده است و باتهای موتورهای جستجو برای ایندکس کردن این محتواهای جدید مجبور هستند سایت شما را بهطور مرتب خزش کنند.
مقاله مرتبط: آیا رباتها میتوانند پهنای باند شما را مصرف کنند؟
سایت شما ممکن است با مشکل روبرو شده باشد و باتها میتوانند با عملیاتهای شدت بالا مشکل را تشدید کنند.
چگونه میتوان این مشکل را حل کرد:
حل مشکل استفاده باتها از سطح بالایی از منابع سرور به طریقهای مختلفی امکانپذیر است. راهحل این مشکل به نوع بات بستگی دارد.
۱- باتهای مخرب
این باتها متأسفانه در بحث خزندههای وب از پروتکلهای استاندارد تبعیت نمیکنند؛ بنابراین ممانعت از باتها برای خزش نکردن سایت سختتر میشود. بهترین دفاع شما در مقابل این باتها این است که منبع ترافیک مخرب را شناسایی کرده و دسترسی به سایت خود از این منابع را مسدود کنید. روشهای مختلفی برای انجام این کار وجود دارد:
فایل.htaccess
فایل.htaccess یک فایل است که در ریشه وبسایت شما قرار دارد و حاوی دستورالعملهایی درباره نحوه دسترسی به وبسایت شما است. با استفاده از این فایل میتوانید درخواستهای دسترسی از منابع خاص را با استفاده از آدرس IP مسدود کنید. به این صورت:
Order Deny,Allow
Deny from 127.0.0.1
Deny from 192.168.1.1
اکنون دسترسی به سایت از آیپیهای ۱۲۷.۰.۰.۱ و ۱۹۲.۱۶۸.۱.۱ مسدود شده است.
همچنین امکان ایجاد مسدودی بر اساس کاربر نیز فراهم است. برای مثال:
BrowserMatchNoCase BadSpamBot badspambot
Order Deny,Allow
Deny from env=badspambot
هنگام کار کردن و استفاده از فایل.htaccess باید نهایت دقت را داشته باشید. اگر این فایل حاوی خطا باشد (مانند خطاهای تایپی) میتواند باعث شد که کل سایت از کار بیافتد. همچنین اگر شما تصادفاً ترافیک قانونی را مسدود کنید (مانند باتهای موتورهای جستجو) خطر حذف سایت از آن موتور جستجوی خاص شما را تهدید میکند.
باتهای قانونی
خوشبختانه در باتهای قانونی (مانند باتهای موتورهای جستجو) روشهای مختلفی برای کنترل دسترسی به سایت یا سرور وجود دارد.
استاندارد محرومسازی رباتها
استاندارد محرومسازی ربات در واقع به باتها میگوید که مجاز هستند به کدام بخش از سایت شما سرک بکشند و دسترسی به کدام بخشها نیز برای آنها ممنوع است. این قوانین در فایلی به نام robots.txt قرار دارند که فایل robots.txt نیز در روت سایت قرار گرفته است. از جمل کارهایی که با فایل robots.txt میتوانید انجام دهید عبارتاند از:
متوقف کردن تمام باتها خزش کردن سایت: این کار فقط باید زمانی انجام شود که نمیخواهید در موتورهای جستجو ظاهر شوید. مسدود کردن کل باتها مانع از ایندکس شدن سایت میشود.
متوقف کردن تمام باتها از دسترسی به بخشهای مشخصی از سایت: استفاده از این روش زمانی مفید است که سایت شما دارای تعداد صفحات بالایی است و این صفحات ارزش کم یا محتوای اضافی را ارائه میدهند. با ممانعت باتها از خزش کردن صفحات اضافی، بار روی سرور کاهش مییابد.
مقاله مرتبط: آیا وردپرس توانایی مدیریت ترافیک بالای وبسایت را دارد؟
مسدود کردن باتهای مشخص از سایت: برخی سرویسها ممکن است از باتهایی استفاده کنند که به سایت شما مرتبط نباشند و ارزشی هم برای آن ندارند. برای مثال، شما نیازی به استفاده از موتور جستجوی روسی یاندکس ندارید تا سایت خزش کند؛ بنابراین میتوانید مانع از خزش کردن سایت توسط این موتور جستجو شوید.
خطاهای وبسایت را رفع کنید
اگر بات عامل خطاهای سایت است، رفع کردن خطاها آسانتر است؛ اما مشکل استفاده بالا از منابع سرور ممکن است منحصراً توسط یک بات ایجاد نشده باشد و بازدیدکنندگان عادی عامل آن باشند. شما میتوانید با آزمایش و بررسی خطاهای فایل لوگ سرور، منبع خطا را مشخص کنید.
کش سایت یا CDN
کش سایت در سمت سرور با ارائه یک نسخه استاتیک از سایت بهجای محتواهای تولید شده از یک دیتابیس، میتواند باعث کاهش بازدیدهای غیرضروری از سرور شود. افزایش سرعت بارگذاری سایت برای بازدیدکنندگان واقعی از دیگر مزیتهای کش است.
به همین ترتیب، شبکه تحویل محتوا یا CDN نیز میتواند محتوا را از سرور شما به گرههایی با کارایی بالا که از لحاظ جغرافیایی به منبع درخواست نزدیکتر هستند بارگیری کند. همانند کش سمت سرور، این روش نیز باعث کاهش تعداد بازدیدها از سرور شده و در نهایت بار سرور را کاهش میدهد.
محدود کردن میزان خزش
اغلب موتورهای جستجو روشهایی برای کنترل میزان خزش کردن باتها از سرور را ارائه میدهند. البته این روش نمیتواند کنترل کننده بازه زمانی خزش کردن سایت توسط بات باشد، اما میتوانید از طریق آن مقدار منابع مصرفی موقع خزش را مشخص کنید. با کاهش این نرخ باید بتوانید تأثیری که باتها روی منابع سرور دارند را به حداقل برسانید.
دستورالعملهای مرتبط با دو موتور جستجوی گوگل و بینگ را در ادامه میخوانید:
گوگل
- به سرچ کنسول وارد شوید
- در صفحه اصلی سرچ کنسول، روی سایتی که میخواهید کلیک کنید
- روی آیکون چرخ دنده و سپس Site Setting کلیک کنید
- در بخش Crawl rate، گزینه دلخواه را انتخاب کرده و سپس نرخ خزشی که میخواهید را تعیین کنید
بینگ
- به Bing Webmaster Tools وارد شوید
- روی سایتی که میخواهید کلیک کنید
- پیکربندی سایت را باز کنید
- روی Crawl Control کلیک کنید
- زمان دلخواه خود را در اینجا تعیین کنید