1

レガシー Java アプリケーション (Weblogic クラスターでホストされている) のアップグレードの一環として、このアプリケーションの 1 つのセクションがシングル ページ アプリケーション (REACT) に置き換えられ、移行されたバックエンド機能を含むさまざまなサービスを API 経由で呼び出します。今のところ、すべての UI 依存関係がレガシー アプリケーションから移植されるまで、REACT SPA は引き続き JSP ページ内でホストされます (一部の一般的な JSP コードは移植されていないため、react アプリをホストする JSP ページに存在します)。

このセットアップをホストするインフラストラクチャは現在 Apache サーバーであり、必要に応じて Weblogic クラスターまたは新しいサービスにルーティングされます。以前は、すべての *.jsp ページが単純な weblogic プラグイン ブロックを使用してクラスターにルーティングされていたため、weblogic クラスターへのプロキシは簡単でした。

 <IfModule mod_weblogic.c>
   WebLogicCluster server1:port,server2:port
   MatchExpression  *.jsp
 </IfModule>

ただし、新しい SPA では、SPA を含む単一の .jsp ページにプロキシするための一連のルートも必要です。私の目標がパスによるプロキシのみである場合、Apache weblogic プラグインを使用して簡単に解決できます。

 <Location /newSection/>
   WLSRequest On
   WebLogicCluster server1:port,server2:port
   PathTrim /newSection/
   PathPrepend SPA.jsp
   DefaultFileName SPA.jsp
 </Location>

ただし、これはベースの /newSection/ URL に対してのみ機能し、次のような URL として機能します。

http://host/newSection/spa-route

にプロキシされます

http://host/SPA.jsp/spa-route

これは明らかに有効ではありません。

PathTrim、PathPrepend、または weblogic プラグインのために試したその他のことは、単一の URI へのパスによってプロキシしようとしている問題を解決しません (すべてをhttp://host/SPA.jspにプロキシする必要があり、SPA ルーター ハンドル残り)

現在、代わりに mod_rewrite と mod_proxy を使用して実験しています。RewriteRule [P] を使用すると、クラスター上の単一の URI (プロキシ バランサーからのクラスター IP) にプロキシできるからです。ただし、これはセットアップがはるかに複雑で (まだ試行中です)、セッションの固定性などを自分で実装する必要があります。

mod_weblogic プラグインを使用して特定の URI にプロキシする方法の解決策は素晴らしいですが、mod_rewrite、mod_proxy、および/または mod_proxy_balancer を使用して weblogic クラスタ上の単一の URI にプロキシする方法の例は非常に役立ちます。良い。

4

2 に答える 2

0

weblogic プラグインを使用して個々の URL を送信する方法は次のとおりです。必要に応じてオプションを自由に変更してください。

仮想ホスト ファイルを作成します。

<VirtualHost *:80>
        SSLEngine on
        ServerName fqdn
        ServerAlias alias
        ServerAdmin webmaster@localhost
        Header always append X-Frame-Options DENY
        DocumentRoot /var/apache2/htdocs

        <Directory /var/apache2/htdocs>
            Options -Indexes +FollowSymLinks
            AllowOverride None
            Require all granted
        </Directory>

<IfModule mod_weblogic.c>
    debug ERR
    FileCaching on
    WLIOTimeoutSecs 600
    Idempotent ON
    FileCaching ON
    DynamicServerList ON
    KeepAliveEnabled OFF

<Location /newsection>
        SetHandler weblogic-handler
        WebLogicCluster host1:port,host2:port
</Location>
<Location /newsection/SPA.jsp>
        SetHandler weblogic-handler
        WebLogicCluster host3:port,host4:port
</Location>
<Location /SPA.jsp>
        SetHandler weblogic-handler
        WebLogicCluster host5:port,host6:port
</Location>

</IfModule>
</VirtualHost>
于 2016-09-14T17:22:46.357 に答える