Secara dinamis memblokir penggunaan bandwidth HTTP berlebihan?

24

Kami sedikit terkejut melihat ini pada grafik Cacti kami untuk lalu lintas web 4 Juni:

Kami menjalankan Log Parser pada log IIS kami dan ternyata ini adalah badai yang sempurna dari Yahoo dan Google bot mengindeks kami .. dalam periode 3 jam itu, kami melihat 287 ribu hit dari 3 IP Google berbeda, ditambah 104 ribu dari Yahoo. Aduh?

Meskipun kami tidak ingin memblokir Google atau Yahoo, ini telah muncul sebelumnya. Kami memiliki akses ke Cisco PIX 515E , dan kami berpikir untuk menempatkannya di depan sehingga kami dapat menangani pelanggar bandwidth secara dinamis tanpa menyentuh server web kami secara langsung.

Tetapi apakah itu solusi terbaik? Saya ingin tahu apakah ada perangkat lunak atau perangkat keras yang dapat membantu kami mengidentifikasi dan memblokir penggunaan bandwidth yang berlebihan , idealnya dalam waktu nyata? Mungkin sedikit perangkat keras atau perangkat lunak sumber terbuka yang dapat kita letakkan di depan server web kita?

Kami sebagian besar toko Windows tetapi kami memiliki beberapa keterampilan Linux juga; kami juga terbuka untuk membeli perangkat keras jika PIX 515E tidak cukup. Apa yang akan kamu rekomendasikan?

Jeff Atwood
sumber

Jawaban:

23

Jika PIX Anda menjalankan versi 7.2 atau lebih tinggi dari OS, atau dapat ditingkatkan untuk itu, maka Anda dapat menerapkan kebijakan QOS di tingkat firewall. Khususnya ini memungkinkan Anda untuk membentuk lalu lintas dan harus memungkinkan Anda untuk membatasi bandwidth yang digunakan oleh bot. Cisco punya gudie yang bagus untuk ini di sini .

Sam Cogan
sumber
Satu-satunya masalah yang saya miliki dengan jawaban ini adalah bahwa poster tidak ingin BLOK (atau menurunkan) Google atau Yahoo tetapi lebih ingin mereka "merangkak baik".
KPWINC
1
QOS bukan tentang pemblokiran. Itu sebabnya Sam Cogan menulis "harus memungkinkan Anda membatasi bandwidth yang digunakan oleh bot".
Piotr Dobrogost
9

Saya tidak yakin tentang yahoo, tetapi Anda dapat mengkonfigurasi frekuensi bot Google mengindeks situs Anda. Lihatlah Google Webmaster . Saya tidak yakin apakah Yahoo memiliki hal serupa. Apa pun itu akan mengurangi lalu lintas hingga 50%.

Atau, beberapa server web dapat membatasi lalu lintas per koneksi sehingga Anda dapat mencobanya. Saya pribadi akan menjauh dari solusi perangkat keras karena kemungkinan besar akan lebih mahal.

buecking
sumber
Yahoo! memiliki Site Explorer.
Amok
9

Untuk mengurangi beban perayapan - Ini hanya berfungsi dengan Microsoft dan Yahoo. Untuk Google, Anda harus menentukan kecepatan perayapan yang lebih lambat melalui Alat Webmaster mereka ( http://www.google.com/webmasters/ ).

Berhati-hatilah saat menerapkan ini karena jika Anda terlalu lambat memperlambat perayapan, robot tidak akan dapat mengakses semua situs Anda, dan Anda mungkin kehilangan halaman dari indeks.

Berikut beberapa contoh (ini ada di robots.txtfile Anda ):

# Yahoo's Slurp Robot - Please wait 7 seconds in between visits

User-agent: slurp
Crawl-delay: 7

# MSN Robot - Please wait 5 seconds in between visits

User-agent: msnbot
Crawl-delay: 5

Sedikit di luar topik, tetapi Anda juga dapat menentukan file indeks Peta Situs atau Peta Situs.

Jika Anda ingin memberikan mesin pencari dengan daftar lengkap URL terbaik Anda, Anda juga dapat memberikan satu atau lebih arahan penemuan peta situs. Harap perhatikan bahwa agen pengguna tidak berlaku untuk arahan ini, jadi Anda tidak dapat menggunakan ini untuk menentukan peta situs untuk beberapa tetapi tidak semua mesin pencari.

# Please read my sitemap and index everything!

Sitemap: http://yourdomain.com/sitemap.axd
KPWINC
sumber
4

Kami menggunakan firewall Watchguard (milik kami adalah X1000 yang sekarang sudah tidak digunakan lagi). Mereka memiliki banyak fitur berputar di sekitar memblokir domain atau ips yang terlihat berulang kali atau menggunakan jumlah bandwidth yang obsesif.

Ini perlu beberapa penyesuaian karena Anda obvisouly tidak ingin memblokir Jon Skeet di stackoverflow :)

Mat
sumber
3

Saya akan merekomendasikan Microsoft ISA Server 2006. Khusus untuk persyaratan ini, standarnya akan dibatasi hingga 600 permintaan HTTP / menit per IP secara default dan Anda dapat menerapkan pengecualian untuk Jon Skeet (maaf, saya menyadari bahwa "lelucon" telah dibuat! ).

Anda memiliki manfaat tambahan dari pemfilteran tingkat aplikasi, kemampuan untuk memuat-keseimbangan di beberapa webservers (bukan NLB pada server-server itu), penghentian VPN dll. Ada sejumlah ekstensi komersial yang tersedia dan Anda bahkan dapat menulis filter ISAPI Anda sendiri jika kamu merasa berani.

Ini jelas bukan open-source tetapi memiliki manfaat untuk toko Windows dan berjalan pada perangkat keras komoditas.

Robin M
sumber
Ini adalah pendekatan yang paling fleksibel bersama dengan modig robots.txt
Jim B
Terima kasih. Saya setuju bahwa perayap perlu diberi arahan!
Robin M
2

Kami menggunakan load-balancers Foundry (khususnya SI850s) untuk menangani masalah pembentukan ini, ia juga menangani cukup banyak 'nastys' lainnya seperti SYN-floods dll. Mungkin akan sedikit berlebihan bagi kalian.

Chopper3
sumber
2

Bluecoat (sebelumnya Packeteer) produk PacketShaper secara dinamis dapat membatasi penggunaan berlebihan pada lalu lintas yang dikelolanya.

Kevin Kuphal
sumber
1

Anda bahkan dapat melakukan pembatasan-tingkat yang belum sempurna dengan router Cisco reguler dengan kapasitas apa pun / vintage. Apakah Anda menggunakan router Cisco?

Brian Knoblauch
sumber