1

静的ページを提供し、Tomcatを使用してWebアプリケーションを提供するようにApacheを使用してホストをセットアップしました(この質問を参照)。静的ページはからのサーバーです

http://myhost.com

動的(Tomcat)ページは

" http://myhost.com/myapp "

mod_proxyは、「http://myhost.com/myapp 」が「 http://myhost.com:8080」で実行されているTomcatサーバーに転送されることを確認します。

問題は、「 http://myhost.com/myapp 」に標準のTomcat紹介ページが表示されるのに、左側のローカルリンク(「ステータス」など)をクリックすると、URL「http:/ 」が生成されることです。 /myhost.com/manager/status "生成する必要があります:" http://myhost.com/ myapp / manager / status "

(同じことがtomcatの下にインストールされたwebappsにも当てはまります)

Tomcatリンクを適切な場所にリダイレクトするには、構成(apache、tomcat?)で何を変更する必要がありますか?

4

3 に答える 3

0

URL は次のものからマッピングされます。

http://myhost.com/myapp -> http://myhost.com:8080

これは、上記の URL へのアクセスが Tomcat の ROOT アプリケーションにマップされることを意味します。ROOT アプリケーションは、Tomcat のルート コンテキストからのリンクを含むページを生成します。

つまり、次の場所に移動した場合:

http://myhost.com:8080

へのリンクを含むページが表示されます

http://myhost.com:8080/manager/status

このリンクは機能します。ただし、そのページが Apache 経由で要求したブラウザに返されると、完全な URL はhttp://myhost.com/manager/statusのようになります。

'myapp' というアプリケーションを Tomcat にデプロイするつもりですか? その場合、このアプリの Tomcat URL は

http://myhost.com:8080/myapp

これは、Apache 経由でアクセスしたときにも正しくマッピングされます。

この方法で絶対に Tomcats ルート アプリケーションにアクセスする必要がある場合は、Tomcat が返すページで出力する URL を書き直す必要があります。

于 2010-01-20T09:13:20.513 に答える
0

私は で最も成功しましたmod_proxy_ajp。mod_proxy が必要ですが、ajp で動作します。代わりにそれを使用すると、conf ファイルは似ています

    ProxyPass / ajp://localhost:8009/

私の同様の質問と、この質問への回答も参照してください。私が見つけた mod_proxy_ajp の唯一の欠点は、Tomcat を再起動する必要がある場合、Apache も強制的に再起動する必要があることです。

于 2010-01-20T14:26:46.127 に答える
0

ProxyPassReversehttpd.conf で設定を行いましたか。これにより、HTTP ヘッダーが上書きされ、Tomcat 側で正しい要求が得られます。

于 2010-01-20T09:36:20.620 に答える