1
  1. Apacheでmod_jkを使用し、tomcatで仮想ホストを構成する私の古い方法JSPファイルでは、CSSを次のように参照しています。

    /<%=request.getContextPath()%>/css/styles.css

ホームリンクがに設定されている間

/<%=request.getContextPath()%>/

したがって、apacheでmod_jkを使用してajpを使用してtomcatを操作すると、これは正常に機能しました。

  1. 以下のようにリバースプロキシを設定しようとすると

ProxyPass / http:// localhost:800 / mywebapp

ProxyPassReverse / http:// localhost:800 / mywebapp

ホームページは正常に取得できますが、cssリクエストは http://mydomain.com/mywebapp/mywebapp/css/style.cssになる ため、cssファイルを正しく取得できません。

  1. 考えられる方法の1つは、常に./style.cssや../style.cssのような相対パスを使用することだと思います。ヘッダー/フッターは共有されており、ホームページは詳細ページとは異なるレベルにあるため、相対パスを使用するのは不便です。これらは異なるレベルにあるためです。それでも、ホームリンクは/<%=request.getContextPath()%>/でなければならないと思います

だから私はJavaWebでcontextrootをうまく設定し、リバースプロキシでもうまく機能する方法は何だろうか?

ありがとう

4

1 に答える 1

0

私が知っているように、アプリケーション サーバー (Tomcat) はリバース プロキシの存在を認識できません。一般的に言えば、任意の数のリバース プロキシを介して、またはブラウザから直接アクセスできます。これを制限するために、通常、HTTP や Java ではなく、ネットワーク構成が使用されます。

したがって、アプリケーションを適切に機能させるには、相対 URL に正確に依存する必要があります。

リバース プロキシの存在に対処する必要がある場合 (ほとんどの場合、SSO アーキテクチャが原因)、「ジャンクション」構成文字列項目 (アプリケーションをマップするためにプロキシで使用される URL の一部) を埋め込み、それを必要な場所でのみ使用します。絶対 URL を作成する必要があります。

于 2012-01-03T08:31:22.880 に答える