※追記があります。最新バージョンは1.1です。

先日作った mod_loadaverage_redirect にもう少し機能を追加して mod_loadaverage_action という名前でリリースします。名前が変ったのでディレクティブ名もLoadAverageRedirect***からLoadAverageAction***に変わっているので注意してください。

Source:
mod_loadaverage_action-1.0.tar.gz
Repository
http://svn.clouder.jp/repos/public/mod_loadaverage_action/tags/REL-1.0/

追加された機能は、今までは一つのリダイレクト先しか指定できなかった(LoadAverageActionURL)のですが今回からは LoadAverageActionRule というのを指定すると mod_rewrite の RewriteRule みたいに正規表現でリダイレクト先を動的に変更できるようにしました。

つまり、下記のように書くとサーバのload averageが1.00以上のときには、/foo/barというURLにアクセスした際に http://example.com/bar にリダイレクトをさせることができます。
ちなみにLoadAverageActionURLとLoadAverageActionRuleの両方が指定されていた場合には、LoadAverageActionRuleが優先されます。

LoadAverageAction On
LoadAverageActionThreshold 1.00
LoadAverageActionRule ^/foo/(.*)$ http://example.com/$1

これ以外にも、LoadAverageAction On としておくだけでも、SERVER_LOAD_AVERAGEという環境変数にload averageがセットされるようになっているので、それを見てrewriteでごにょごにょできるようにもしてみました(id:ikebe案)。

ただ、今はこのRuleは1つしか指定できないので、今後は複数指定できるようにできたらいいなと考えちうです。

追記(Mon Oct 30 19:17:33 2006)
はてブで弾さんがコメントしてた通り、getloadavg()を使うようにしてみた。これでBSDでも動くはず。
http://svn.clouder.jp/repos/public/mod_loadaverage_action/tags/REL-1.2/