日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)
- p (01/03)
- Thiramil (10/26)
- 久々にいまむらを食べたい通りすがり (09/28)
- Fluxadir (05/16)
- Antiprestin (11/08)
2004/12/16
_ [日記/blog] Referer SPAM による tDiary への DoS 攻撃を回避する (1)
- どうもここ数日ほど blackcats が重い
- Load Average 20突破することすらあるらしい
- 負荷の発生源はどうも Apache 経由で起動されている ruby らしい
- Referer Spammer のロボットによる tDiary への多量なアクセスが原因か?
ということで、Referer SPAM 対策を Anti Referer Spam プラグインだけでなく Apache レベルで Deny することにする。
.htaccess の生成
Anti Referer Spam プラグインをここ2ヶ月ほど運用してきた結果蓄積された、400弱の SPAM URL を、スパム対策その後@まぬけ庵の日々の awk スクリプトに食わせて .htaccess ファイルを生成して設置。
一方、Anti Referer Spam プラグインの負荷を軽減してやるため、tdiary/data/AntiRefSpamFilter/spamurls はクリア。
これで、Referer SPAM のクローラーがやってきても、CGI/ruby が実行されずに Apache が門前払いしてくれるはずだ (門前払いされた結果は [Apache-Users 4413] Re: Apache で リファラ spam 対策をしたいと同様に error_log に出る)
パフォーマンスの改善
さて、400弱もの URL を元に生成された .htaccess は 27KB に達するのだが、これだけの量をアクセス毎に Apache に解釈させるのはちょっと負担が大きそうだ。
.htaccess の設定前と設定後で Apache のレスポンスを比較したところ、
Requests per second | |
---|---|
設定前 | 657.54 |
設定後 (.htaccess) | 87.20 |
案の定パフォーマンスが大幅に落ちてしまっている。
では、.htaccess ではなく httpd.conf に記述してしまって、デーモン起動時に1回読ませるだけならどうだろうか。
Requests per second | |
---|---|
設定後 (httpd.conf) | 534.62 |
だいぶマシになった。(Apache の消費メモリが多少増えるだろうが気にしないことにする)
なるほど...でもウチはレンタルサーバなんで httpd.conf はいじれないんだよね... orz。
おつかれさま。相変わらず仕事早いねー。<br>これ、blackcatsでホスティングしてるドメイン全部に設定しちゃった方が負荷軽減できると思うんだけど、どうかな?<br>後でみんなに相談してみよう。
というわけで、.htaccess ベースでもパフォーマンスをあまり落とさずに済む最適化を検討してみましたのでhttp://pmakino.jp/tdiary/20041218.html#p01 を参照ください。<br>「これも SPAM にしか使われないだろう」という単語にあたりをつけてもっと冒頭の正規表現に組み入れれば、より軽くすることが出来ると思います。