milanoさんから始まった空前のload averageブーム!かどうかわからないけど、各所で話題になっているので自分もApacheモジュールを練習がてら作ってみました。ちなみにこのモジュールはmilanoさんがやりたそうな複雑なものにはまだ対応していません。。。
http://svn.clouder.jp/repos/public/mod_loadaverage_redirect/trunk/
LoadAverageRedirectThresholdで指定した数よりもそのマシンのload averageが高くなったら、LoadAverageRedirectURLで指定したURLにリダイレクトをするというものです。インストールは、make && make install でオッケイ。あとは、httpd.confに
LoadModule loadaverage_redirect_module libexec/mod_loadaverage_redirect.so
LoadAverageRedirect On
LoadAverageRedirectThreshold 0.1
LoadAverageRedirectURL http://www.livedoor.com/
と書いておけば、なんとなく動きます。
この例では、load average が 0.1 より大きくなったときに http://www.livedoor.com/ にリダイレクトするようになっています。
load averageを求めるコードはspiritlooseのはてなダイアリーからしっけいしました。
もうちょっといろんな昨日を付ければ結構便利になりそうな予感もする。
パス毎に設定ができたりとかすぐできそうなので、後で実装してみようかな。あとはApache2にも対応したりしたい。
#コードが汚い or おかしい部分はご指摘ください。まだ修行中の身なのでご容赦の程…。