Apacheの背後にある閉じたポートのTomcatサーバーで実行されているアプリのリバースプロキシに苦労しています。便宜上、「 http:// mydomain/apps/my_app / 」のプロキシ要求を「 http:// localhost:8082/my_app」のTomcatアプリにリバースプロキシしたいとします。 / 'リモートサーバー上。 Apachevhost.confファイルの次のプロキシ設定ですべて正常に機能します。
ProxyRequests off
ProxyPass /apps/ http://localhost:8082/
ProxyPassReverse /apps/ http://localhost:8082/
アプリの一部を除いて、クライアントで実行されるJava webstartファイルを生成し、 ' http:/)でTomcatアプリに接続する必要があります。/localhost:8082/my_app/webstart '(リモートサーバー上)。
問題の核心は、a)localhostの要求がクライアントコンピューターに関連して解釈され、b)リモートサーバーを指している場合でも、ポート8082がそこで閉じられているため、この接続が明らかに機能しないことです。
したがって、ProxyPreserveHostがどのように役立つかを理解し、元のリクエストのホスト名がJava webstartリクエスト:
ProxyRequests off
ProxyPreserveHost on
ProxyPass /apps/ http://localhost:8082/
ProxyPassReverse /apps/ http://mydomain/
これは機能します(プロキシされたTomcatアプリの内部リダイレクトでさえ、ProxyPassReverse設定のおかげで機能します)...ほとんど。 1つの問題が残っています:Java webstartファイルで使用されるURLに '/ apps /'の部分がなく、 ' http:// mydomain/my_app/webstart '、' http:// mydomain/apps/my_app/webstart 'の代わりに、/ apps /で始まるリクエストのみが逆プロキシされるため、明らかに失敗します。プロキシされたアプリは、元のURL全体を「表示」しません(「 http:// mydomain/apps/my_app / 」)が、プロキシ処理によって除外された部分のみを表示します(「 http:// mydomain/my_app / ')。
元のURLからプロキシされたアプリへのパスをApacheに渡すことができる、忘れたプロキシ設定はありますか?
敬具、
ロン
プロキシバックエンドは元のリクエストをまったく認識しません。それがプロキシの要点です。
おそらく次のものが必要です。
ProxyPass /apps/ http://localhost:8082/apps/
ProxyPassReverse /apps/ http://localhost:8082/apps/
そして、Tomcatアプリをそのコンテキストで利用できるようにします。