web-dev-qa-db-ja.com

ProxyPassでTomcatコンテキスト名とは異なるパス名を使用する方法

Tomcat5.5.9とApache2.xを使用しています

ProxyPassでTomcatコンテキスト名とは異なるパス名を使用しようとしています。

ProxyPass /path http://localhost:8080/contextname

ただし、これは機能しません。これら2つが同じである場合、すべてが正常に機能します。

ネット上で見られるほとんどの例でも、Tomcatコンテキスト名と同じパスがあります。

Tomcatコンテキスト内で「context.xml」を使用していますが、「server.xml」エントリがありません。また、私はプレーンなhttd.confを使用しており、VirtualHostエントリは使用していません。

どんな助けでも大歓迎です。

よろしく、

ディプテヌ

13
Diptendu Dutta

私はあなたが両方を必要とすると信じています

ProxyPass /path/ http://localhost:8080/contextname/
ProxyPassReverse /path/ http://localhost:8080/contextname/

使用しない理由 mod_jk

12
RewriteEngine on
RewriteRule ^/path$ /path/ [R]
RewriteRule ^/path/(.*) /contextname/$1 [P]

ProxyPass /contextname/ protocol://192.168.15.48:8080/contextname/
ProxyPassReverse /contextname/ protocol://192.168.15.48:8080/contextname/

この場合の "protocol" = "http"は...

3
JL

両方の値にスラッシュを追加します。

ProxyPass /path/ http://localhost:8080/contextname/

3
Janning

あなたの問題はおそらくアプリケーションが生成する自己参照URLです。それについてできることはあまりありません

  1. アプリの変更または
  2. それが吐き出すすべてを書き直します。

オプション2は非常に壊れやすい場合があります。詳細については、 Tomcatドキュメント を参照してください。

2
vasquez