lighttpd's load balancer
lighttpd のロードバランス機能って誰も試してないのかなぁ。
一応 fair, hash, round-robin と3種類あって、
- fair
- 負荷によって振り分ける(デフォルト)
- hash
- URLのhashで振り分ける(同じURLは必ず同じホストにわけられる)
- Cache Array Routing Protocol ていうアルゴリズムを使ってるらしい。
- round-robin
- リクエストごとに違うホストへ振り分ける
設定も非常に簡単。
$HTTP["host"] == "www.example.org" {
proxy.balance = "fair"
proxy.server = ( ".pl" => ( ( "host" => "192.168.0.2", "port" => 8080 ),
( "host" => "192.168.0.3" ),
( "host" => "192.168.0.4" ),
( "host" => "192.168.0.5", "port" => 81 ) ) )
}
みたいな。バックエンドホストでも普通に VirtualHost が使えるのも○
svn.unknownplace.org、dev.unknownplace.org でも
$HTTP["host"] =~ "^(dev|svn)\.|unknownplace\.org)$" {
proxy.server = ( "/" =>
((
"host" => "127.0.0.1",
"port" => 8080,
))
)
}
とかしてバックエンドの apache2 にそのままとばしてるけど、後ろでも VirtualHost 普通に使えてうまー。
まぁ、lighttpd の mod_proxy だと svn メソッドとばないので commit できねーのだけど(だめ