بعد از پست تو Hacker News، سایتم زیر بار رباتهای هوش مصنوعی خوابید
خلاصهٔ کاملتر
نویسنده چند ساله داره روی sprinklz.io کار میکنه. این یه فیدخوان شخصیسازیپذیره که میتونه موضوعات خاصی مثل LLMها رو تو فید خبریت عقب بندازه. یه ماه پیش پروژه رو تو Hacker News پست کرد و حدود صدتا upvote گرفت. ولی بعدش سایت بهشدت کند شد و عجیب اینکه چند روز بعد از پست، کندی بدتر هم شد. در حالی که فقط تعداد کمی کاربر واقعی و لاگینکرده فعال بودن.
برای پیدا کردن مشکل، اول برای هر endpoint لاگ تعداد درخواستها رو اضافه کرد. معلوم شد بیشتر درخواستها اصلاً سراغ گرفتن مقالهها نمیرفتن. چون سایت یه single-page application هست (یعنی محتوا با جاوااسکریپت سمت کاربر رندر میشه)، این یعنی اکثر درخواستها حتی جاوااسکریپت صفحه رو هم اجرا نمیکردن و قطعاً آدم نبودن.
بعد با بررسی لاگهای NGINX دید تقریباً نصف کل ترافیک از یه کاربر خاص میاد. این کاربر یه سرویسه که تغییرات سایتها رو زیر نظر میگیره و ازشون خبرنامهٔ خلاصهشده با هوش مصنوعی میسازه. منظورش از «زیر نظر گرفتن» هم این بود که دقیقهای چندین بار سایت رو query میکرد. نویسنده بلاکش کرد.
بقیهٔ ترافیک مال crawlerهای معروفی مثل رباتهای Claude، OpenAI و ایندکسر گوگل بود که خودشون رو معرفی کرده بودن. چندتا اسکنر آسیبپذیری هم بودن که دنبال مسیرهای وردپرسی میگشتن، با اینکه سایت اصلاً وردپرسی نیست. نویسنده یه robots.txt گذاشت که جلوی بیشتر رباتای هوش مصنوعی رو بگیره ولی به رباتهای موتور جستجو اجازه بده. rate limit هم اضافه کرد و مسیرهایی که اسکنرها میزدن رو خودش تست کرد تا مطمئن شه چیزی نشت نمیکنه.
به گفتهٔ نویسنده مهمترین درس این ماجرا این بود که سایت باید سریعتر بشه و زیر بار سنگین بهتر scale کنه. برای همین تو چند هفتهٔ اخیر کلی بهبود روی زیرساخت داده که باید عملکرد رو برای همهٔ کاربرا بهتر کنه.
نکات کلیدی:
- تقریباً نصف ترافیک سایت از یه سرویس خبرنامهٔ هوش مصنوعی بود که دقیقهای چند بار سایت رو میزد
- بیشتر درخواستها جاوااسکریپت SPA رو اجرا نمیکردن، یعنی ربات بودن
- crawlerهای Claude، OpenAI و گوگل هم بخش زیادی از ترافیک بودن
- راهحلها: بلاک کردن کاربر پرمصرف، robots.txt، rate limit و بهبود زیرساخت




