/ mobile/videoの下のすべてのリクエスト(およびそれらのリクエストのみ)がセカンダリWebサーバーの/ディレクトリにリダイレクトされるように、lighttpdでリバースプロキシを設定しようとしています。これはApacheでは非常に簡単ですが、lighttpdでこれを行う方法を一生理解することはできません。
$HTTP["url"] =~ "^/wsmobile/video/" {
url.rewrite-once = ( "^/wsmobile/video/(.+)" => "/$1" )
proxy.server = ( "" => ( ( "Host" => "210.200.144.26", "port" => 9091 ) ) )
}
Http ["url"]ディレクティブを使用してみましたが、lighttpdはこれらのリクエストを無視し、完全なURLをセカンダリサーバーに渡し続けます。セカンダリサーバーはもちろん404をチョークしてスローします。ただし、グローバルリライトを実行すると、すべてがセカンダリサーバーに転送されますが、これも私が望んでいることではありません。
このタスクを実行するにはどうすればよいですか?
urlの書き換え 機能しません in $HTTP["url"]
。ただし、次のようにグローバルに書き換えることができるはずです。
url.rewrite-once = ( "^/wsmobile/video/(.*)" => "/test/" )
そしてそれをキャッチします:
$HTTP["url"] =~ "^/test/" {
# do proxy here
}
更新:
こちらをご覧ください: lighttpdバグ#164 。具体的には、 proxy-core.rewrite-request があなたが探しているものでなければなりません。