2012-05-03 26 views
3

Nginxの前にあるTomcatサーバーにWebアプリケーションを展開しようとしています。 私が遭遇する問題は、私のJSPページのタグが「間違っている」(それはtomcatの観点から正しい)コンテキストパスを印刷していることです。NginxをリバースプロキシとしたTomcat Webアプリケーションのコンテキストパス

Tomcatで私のWebアプリケーションは、コンテキストパスに展開され

:8080 ように、Webアプリケーションは、次のように私のnginxのはproxy_passように構成されてhttp://localhost:8080/webApp1

を介してアクセス可能な/のwebapp1 Tomcatがポート上で実行している:

location/{ 
    http://localhost:8080/webApp1; 
} 
この構成により

は、Webアプリケーションは、URL http://localhost

ホームページのテキストでしか動作して動作するようになっています。ホームページは正常にロードされましたが、ホームページのすべてのリンクには/ webApp1という接頭辞が付いていますので、すべてのリンクのプレフィックスとして出力されます。

誰もこれを以前に修正しましたか?

すべての回答を高く評価します。

z。

答えて

3

多くの時間を費やしてこの問題を解決することができました。

nginx HttpSubsModuleのサードパーティ製モジュールがあります。このモジュールを使用すると、レスポンスボディ(例:html)の文字列を置き換えることができます。

だから、問題がで固定することができます:それはhtmlの応答からすべてのコンテキスト「/のwebapp1」を削除します

location/{ 
    http://localhost:8080/webApp1; 
    subs_filter_types text/html; 
    subs_filter '/webApp1' ''; 
} 

これは、この問題に遭遇した他の人にも役立ちます。

z。

+0

1つの副作用は、urlを使用することであり、contextpathを含むテキストも置き換えられます。/ –

関連する問題