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系への対応
- 諸々のコードのクリーンアップ
といった課題にチャレンジしていくつもりである。