0

リバース プロキシの背後にある、次のものを含む JSP ページを考えてみましょう。

前者は、 mod_proxy_html を使用して を書き換えることで対処できますがlink、スクリプト要素を詳しく調べることはできません。-D 経由で正しい URL を渡し、pageContext.request.contextPath をオーバーライドするよりも良い解決策はありますか?

<link rel="stylesheet" 
    href="${pageContext.request.contextPath}/services/legendcss/legend.css?version=2"
    type="text/css"/>


 <script>
    var bt_wd40_appurl = "${pageContext.request.contextPath}/services";
</script>

明確にするために、おそらく:

で到達可能な Tomcat のコピーhttp://internalhost.comと、 でパブリック インターネット上で到達可能な Apache2 のコピーを考えてみましょうhttp://externalhost.com

Apache インスタンスの構成には、 からhttp://externalhost.com/blue/green/にマップするリバース プロキシが含まれていますhttp://internalhost.com/yellow

現在、「黄色」にあるのは webapp であり、javascript を使用した web ページで構成されており、黄色の webapp 内でも web サービスと通信する必要があります。これらのものにパス名を焼き付けたくはありません。上記のコードは、「internalhost」URL をブラウザーに配信しますが、ブラウザーはそれらと通信できません。「externalhost」URL を配信するために必要です。

プロキシの存在は言うまでもなく、デプロイされている URL を想定するコードを JSP や HTML に含めないことを好みます。

4

1 に答える 1

0

検討の結果、Web サービスの相対 URL は、最も悪い代替手段のようです。したがって、EL 式は完全になくなり、URL はプロキシのどちらの側でも同様に機能します。これには、JSP ページと Web サービスの間の一定のパス関係が必要ですが、それはわずかな代償です。

于 2012-09-03T12:56:57.463 に答える