ついに見つけました。apache-2 で同一 IP からの複数接続を制限するモジュールです (apache-1 用もあります)。
さっそく第二に適用しました。
RewriteRule ^[^.]+\.tdiary\.net/?$ %{HTTP_HOST}/index.rb RewriteRule ^[^.]+\.tdiary\.net/([0-9]+)\.html$ %{HTTP_HOST}/index.rb?date=$1 RewriteRule ^([^.]+)\.tdiary\.net(.*) /home/tdiary/users/$1$2 (中略) <Files *.rb> MaxConnPerIP 2 </Files>
前半の mod_rewrite で日記系の全てのアクセスは必ず *.rb というファイル名がつくので、後半のように簡単に指定できます。
「たった 2 アクセスで制限?」と思われるかもしれませんが、これはあくまで「同時接続の数」ですので、通常の日記ブラウズには十分だと思います。
2じゃぁ、タブブラウザで一気に開くときに困るよん。はてなだってそんなに厳しくないだろう
うーん、あくまで同時接続数ですから、特に問題はないかと思います。
タブブラウザで開く場合でも、開ききってしまったページはカウントされないでしょうから、1タブずつ時間差で開いていくだけじゃないですか?
今、手元で自分の日記をじゃかじゃか開いてみましたが、特に問題は感じませんでしたが…。
もしかして、もっと大きなものが潜んでます?(^^;
なに
「一気に開く」ときに困るのは確かにそうなのですが、一気に開かれると他の人が困る (可能性がある) のも事実なんですよね。でも 2 から 3 に増やしました (弱っ。
とんでもないです。迅速な対応ありがとうございます。私もありえない時間…(以下省略)
問題になるのは、長時間にわたって多数のアクセスをするボットであって、短時間に複数のページを開こうとする個人じゃないから、この対策はどれほど有効かよくわからないな。