Reescreva o URL antes de passar para o proxy Lighttpd

5

Estou tentando configurar um proxy reverso no lighttpd, de forma que todas as solicitações (e somente essas solicitações) em / mobile / video sejam redirecionadas para o diretório / de um servidor web secundário. Isso é muito fácil no apache, mas eu não posso, para a vida de mim, descobrir como fazer isso no lighttpd.

$HTTP["url"] =~ "^/wsmobile/video/" {
       url.rewrite-once = ( "^/wsmobile/video/(.+)" => "/$1" )
       proxy.server = ( "" => ( ( "host" =>  "210.200.144.26", "port" => 9091 ) ) )
}

Eu tentei usar a diretiva http ["url"], mas o lighttpd simplesmente ignora essas requisições e continua a passar o URL completo para o servidor secundário, o que obviamente sufoca e gera 404s. No entanto, se eu fizer uma reescrita global, tudo será encaminhado para o servidor secundário, o que também não é o que eu quero.

Como faço para essa tarefa?

    
por futureelite7 26.04.2010 / 10:22

1 resposta

2

O URL reescreve não funciona em $HTTP["url"] . No entanto, você deve ser capaz de reescrevê-lo globalmente desta maneira:

url.rewrite-once = ( "^/wsmobile/video/(.*)" => "/test/" )

e, em seguida, pegue-o com:

$HTTP["url"] =~ "^/test/" {

   # do proxy here

}

ATUALIZAÇÃO:

Por favor, veja aqui: Lighttpd bug # 164 . Especificamente, proxy-core.rewrite-request deve ser o que você está procurando.

    
por 26.04.2010 / 11:43