WEB関連&仕事 :: 百度、NAVERを拒否する、最良の方法

最近、急激に増えたサーバリソースの消費
一時期はrobots.txtで百度を制限することで、大幅に回復したのですが、また急激に増えはじめまして、

そこで、htaccessで「百度がrobots.txt以外をリクエストした場合はサーバエラーを返す」という設定をしました。
すると、まぁ、エラーログにびっっっしり[client 119.63.196.96] client denied by serverの文字
やはりrobots.txt無視してクロールしまくりです。「ヒドい」の一言、、、

しかし、水際で食い止めたため、
robots.txtだけで制限  転送量 1.4GB(CPU使用時間 1時間14分)から
サーバで制限   転送量 887.5 MB(CPU使用時間 35分57秒)まで減らすことが出来ました。
以前に比べれば、これでもまだ多すぎるのですが、とりあえず成功です。

で、最初は「やった!」と思いましたが、さすがに多過ぎてその他のエラーを読みづらい。

あと、どうせならYeti(NABERのbot)のクロールも防ぎたいなぁと検索してたら



こんな方法がありました。
http://webtech.akijapan.com/spam/robots.phtml




mod::rewiteを使って、クローラボットに、自身のアドレスを収集させる「ミラー防御」だそうです。
これならエラーログの肥大化も防げますし、迷惑被るのはrobots.txtを無視した検索サイト自身です。

書き方はこんなん(引用)

RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} BaiduImagespider [NC]
RewriteRule !^robots\.txt$ http://www.baidu.jp/ [R=301,L]

RewriteCond %{HTTP_USER_AGENT} Yeti [NC]
RewriteRule !^robots\.txt$ http://www.naver.com/ [R=301,L]


悪用すると、ライバルサイトを負荷で落としたりできちゃいますが、絶対やっちゃダメですよ!
あくまで、責任を取らせるのは、robots.txtを無視するクローラーだけにしましょう。

この書き方ならrobots.txtはちゃんと読まれますから


正直、この発想は無かった(笑)
はてなブックマークに追加 ... ツイート ... いいね ...
2012年08月03日 - 05:32 | コメント(0) | WEB関連&仕事

この記事へのコメント

コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。