改造版 mod_dosdetector

mod_dosdetector の改造版をgithubで公開した。元のライセンスに従ってMITライセンスとなっている。

今のところ、最大の違いは次の2点である:

  • 無視するアクセスを環境変数「NoCheckDoS」で指定できるようになった
  • DoSIgnoreContentTypeが指定されていない場合、サブリクエストの生成を行わないようにした

例えば画像/js/cssファイルに対するアクセスを無視するには、次のように SetEnvIf で指定する。DoSIgnoreContentType は指定しなくて良い。

SetEnvIf Request_URI "\.(gif|jpe?g|ico|js|css|png)$" NoCheckDoS

これで各アクセスごとのサブリクエストが行われなくなるので、パフォーマンスも改善されるはず。abを使った単純なテストでは、20%程度は効果があるようだ(並列20、合計10000アクセスで実験)。

Requests per second:    1638.03 [#/sec] (mean)
Time per request:       12.210 [ms] (mean)
Time per request:       0.610 [ms] (mean, across all concurrent requests)
Requests per second:    2058.26 [#/sec] (mean)
Time per request:       9.717 [ms] (mean)
Time per request:       0.486 [ms] (mean, across all concurrent requests)

もし上記の変更点「だけ」が欲しいという方は、compat-1タグ compat-2 タグをチェックアウトしてほしい。今後masterブランチでは(既に取り掛かっているものも含め)

  • 共有メモリ処理と排他処理の整理
  • 設定ディレクティブまわりの整理
  • Apache 2.0系への対応
  • 諸々のコードのクリーンアップ

といった課題にチャレンジしていくつもりである。

Leave a Reply