web-dev-qa-db-ja.com

Lighttpdを介した別のポートへのプロキシURL

同じホスト名の別のポートにURLをプロキシできないようです。 somehost:8080で実行しているユーザーインターフェイス(Angular 5)とsomehost.com(ポート80)でWebアプリケーションの残りの部分を実行しています。 http://somehost.com/xxxhttp://somehost.com:808 にプロキシします。私の構成が正しいか、または正しい場所にあるかわかりません。

$HTTP["Host"] =~ "somehost\.com$" {

        $HTTP["url"] =~ "(^/xxx/)" {
          proxy.server  = ( "" => ("" => ( "Host" => "somehost.com", "port" => 8080 )))
        }

        url.rewrite-if-not-file = (
                "^/(.*)" => "/index.php/$1",
        )


}
3
Michael Niño

あなたの質問から、http://somehost.com/xxx/fileからhttp://somehost.com:8080/fileを提供したいようです。その場合、代わりにhttp://somehost.com:8080/xxx/fileを提供しようとしているため、設定が間違っています。 url.rewrite-onceを追加する必要があります:

  url.rewrite-once = ( "^/xxx/(.*)$" => "/$1" )
  proxy.server  = ( "" => ( # proxy all file extensions / prefixes
    "" => # optional label to identify requests in logs
      ( "Host" => "somehost",
        "port" => 8080
      )
    )
  )

Lighttpdのバージョンによっては、$ HTTP ["url"]一致内からurl.rewrite-onceを呼び出すことができる場合とできない場合があります。

また、mod_proxyおよびmod_rewriteモジュールが次のようにロードされていることを確認してください。

server.modules += ( "mod_proxy" )
server.modules += ("mod_rewrite")

Proxy.serverの詳細: https://redmine.lighttpd.net/projects/1/wiki/Docs_ModProxy url.rewrite-onceの詳細: https:// redmine。 lighttpd.net/projects/1/wiki/docs_modrewrite#urlrewrite-repeat

3
Luca Gibelli