6

我正在使用 Lighttpd 1.4.30在 Play Framework 中配置负载均衡器。

我在 lighttpd-inc.conf 中给出了如下条目。

$HTTP["host"] =~ "http://10.74.9.109:9020" {
proxy.balance = "round-robin" proxy.server = ( "/" =>
( ( "host" => "10.74.9.109", "port" => 9020 ) ) )
}

$HTTP["host"] =~ "http://10.74.9.109:80" {
    proxy.balance = "round-robin" proxy.server = ( "/" => ( 
          ( "host" => "10.74.9.109", "port" => 9020 ), 
          ( "host" => "10.74.9.109", "port" => 9030 ) ) 
    )
}

我的 play 应用程序在端口 9020、9030 上运行良好。

但是当我尝试http://localhost:80我的负载均衡器时,应该将请求转移到这些端口中的任何一个都没有发生。我只得到 Lighttpd 测试页。

4

1 回答 1

2

首先确保您的server.modules阵列中有 mod_proxy。

我认为使用$HTTP["host"]是这里的问题。你应该$SERVER["socket"]像这样使用:

$SERVER["socket"] == ":9020" {
    proxy.server = (
        "/" => (
            (
                "host" => "10.74.9.109",
                "port" => 9020
            )
        )
    )
}

$SERVER["socket"] == ":80" {
    proxy.server = (
        "/" => ( 
              ( "host" => "10.74.9.109", "port" => 9020 ), 
              ( "host" => "10.74.9.109", "port" => 9030 )
        ) 
    )
}
于 2015-12-16T10:10:43.950 回答