mod_ip_count

apacheのアクセス制御を色々と調べているのだが、mod_ip_countというApache2用のモジュールを見つけた。 subversion のコマンドを使えばダウンロードできる(svn co http://svn.zilbo.com/svn/mod_ip_count/branches/2.0/)。 でもって、「./configure --with-apxs=/usr/bin/apxs、make install 」でインストール。

mod_limitipconnがap_get_scoreboard_workerでワーカ情報を取得し、同時接続数で制御するのに対し、mod_ip_countはmemcachedを利用し(なのでmemcachedのデーモンを立ち上げておく必要あり)、特定IPからの単位時間あたりのアクセス数で制御する。 設定の為の項目は、MemCacheMaxRequests(接続数)とかMemCacheMaxTime(チェックする単位時間秒)とか。 IPアドレスの代わりに、COOKIE情報や特定のヘッダー情報を使うことも可能なようだ。

ここで細かく説明するよりは mod_ip_count.c の中身見たほうが早いかも。 (マニュアルもあるわけじゃなし)

ってか、mod_limitipconn と違い、メモリ上にチェック用のテーブルを作るものなので、ソースをハックすればもっと色々応用がききそうな気がする。 あと、apacheを負荷分散していて情報を共有したい場合も、memcached 使っているので簡単にできそうだ、とか。

ただ、Webに情報ほとんど見つからない。 他の制御モジュールでなんとかなっているからなのか、それともどこかにまずいところがあるのか。 確かに memcached を併用するのは敷居が高いかもしれないけど。