/ / Proxying uma subpasta usando o Lighttpd mod_proxy - lighttpd, mod-proxy

Proxying uma subpasta usando Lighttpd mod_proxy - lighttpd, mod-proxy

Estou tendo problemas para obter o mod_proxy corretamenteencaminhar tráfego para um servidor da Web diferente em execução na mesma máquina para uma subpasta predefinida. Idealmente, domain.com/docs deve encaminhar para 127.0.0.1:3000 e todo o restante tráfego deve permanecer em domain.com. As regras de reescrita aqui são para uma instalação do wordpress executada em domain.com:

$HTTP["host"] =~ "(^|.)domain.com" {
$HTTP["url"] =~ "^/docs" {
proxy.server  = ( "" => (( "host" => "127.0.0.1", "port" => 3000 )))
}
$HTTP["url"] !~ "^/docs/(.*)" {
url.rewrite = (
"^/(.*).(.+)$" => "$0",
"^/wp/(.*)$" => "$0",
"^/(.+)/?$" => "/index.php/$1"
)
server.document-root = "/mnt/webroot/html"
}
}

Eu tenho batido minha cabeça contra isso por um tempo agora, então todas as sugestões são bem-vindas.

Respostas:

2 para resposta № 1

Acabei descobrindo o problema que estava causando isso não funcionar como eu esperava.

O modo de reescrita do lighttpd funciona avaliatodos os comandos url.rewrite antes de avaliar suas condicionais $ HTTP ["url"], o que significa que qualquer comando url.rewrite colocado em uma condicional $ HTTP ["url"] não terá efeito.

Não consegui encontrar uma boa solução para o problema.implementação que eu estava procurando com essa limitação e, em vez disso, acabei transferindo parte da reescrita para outro servidor (nó neste caso) para o qual estava proxy do tráfego.

Isso é pouco conhecido nos lighttpd "s ModRewrite documentos com esta linha:

NOTE: url rewriting does not work within a $HTTP["url"] conditional.