2

Spring MVC Web アプリケーションを Tomcat にデプロイし、Apache Web サーバーの背後に隠します。Tomcat と Apache の両方を同じ物理マシンに展開していますが、Tomcat はポート 81 にあり、Apache はポート 80 にあります。

Apache は、リクエストを Tomcat にリダイレクトするように構成されています。私の Web アプリケーションでは、c:urlタグ (JSTL/core) を使用して URL を適切にフォーマットしています。これは、Tomcat に直接アクセスするときは問題なく動作しますが、Apache 経由で Tomcat にアクセスすると、URL が間違っています。

http://localhost:81/MyWebApplication/したがって、Tomcat に直接アクセスする場合は で、Apache 経由でアクセスする場合は で Web アプリケーションを使用できます http://sub.domain/

私が理解している限り、問題は、Apache が Tomcat に送信するリクエストは実際には のような実際のものhttp://localhost:81/MyWebApplication/somethingであるため、JSP がレンダリングされるc:urlと、これらの実際のリクエストに基づいて構築され、アプリは にデプロイされていると認識しlocalhost:81ます。

同じマシン上に同じ方法で構成された他のアプリケーション (Java だけでなく) がたくさんあり、それらが正常に動作するという理由だけで、Apache 構成に変更を加えたくないのです。

質問は:

すべての JSP で使用できるベース URL を明示的に定義する最も適切な方法は何ですか? c:url理想的には、のベース URL を使用したい正しい URL に変更するだけでよいでしょう。

4

1 に答える 1