使用代理时,Lighttpd 从特定客户端重写 URL

使用代理时,Lighttpd 从特定客户端重写 URL

我需要将所有 CGI 请求发送到另一台服务器,因此我决定使用代理。问题是我需要将客户端 IP 发送到服务器,因此我进行了以下配置:

$HTTP["url"] =~ "cgi" {
    $HTTP["remoteip"] =~ "^(.*)$" {
        url.rewrite-once = ("^(.*)$" => "$1?myip=%1")
    }

    proxy.server     = (
                    "" =>
                 (
                   ( "host" => "XXX.XXX.XXX.XXX",
                     "port" => 80,
                   )
                 )
                )
}

问题在于它没有重写 URL。

答案1

发现:无法在 $HTTP["url"] 比较中使用重写。url 条件必须在重写内,如下配置

$HTTP["remoteip"] =~ "^(.*)$" {
    url.rewrite-once = ("^(.*cgi.*)$" => "$1?myip=%1")
}

$HTTP["url"] =~ "cgi" {
proxy.server     = (
                "" =>
             (
               ( "host" => "XXX.XXX.XXX.XXX",
                 "port" => 80,
               )
             )
            )
}

相关内容