web-dev-qa-db-ja.com

プロキシLighttpdに渡す前にURLを書き換えます

/ 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をチョークしてスローします。ただし、グローバルリライトを実行すると、すべてがセカンダリサーバーに転送されますが、これも私が望んでいることではありません。

このタスクを実行するにはどうすればよいですか?

5
futureelite7

urlの書き換え 機能しません in $HTTP["url"]。ただし、次のようにグローバルに書き換えることができるはずです。

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

そしてそれをキャッチします:

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

   # do proxy here

}

更新:

こちらをご覧ください: lighttpdバグ#164 。具体的には、 proxy-core.rewrite-request があなたが探しているものでなければなりません。

2
Karol J. Piczak