2016-09-08 18 views
0

従来のJavaアプリケーション(Weblogicクラスタでホストされています)のアップグレードの一部として、このアプリケーションの1つのセクションは単一ページアプリケーション(REACT) APIを介して、移行されたバックエンド機能を含むさまざまなサービスに移行します。現時点では、すべてのUI依存関係がレガシーアプリケーションから移植されるまで、REACT SPAはJSPページ内でホストされます(一部の一般的なJSPコードは移植されていないため、リアクションアプリケーションをホストするJSPページにも存在します)。Weblogicクラスタ上のページアプリケーションを単一ページにするためのApache to Proxyの使用方法

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

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

、私はまた、プロキシへのルートのセット全体を必要とします私のSPAを含む単一の.jspページに移動します。私の目標は、パスでのみプロキシにした場合、私は、ApacheのWebLogicプラグインで簡単にそれを解決することができます:

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

をベース/ newSection/URLに対するただし、この唯一の作品、

http://host/newSection/spa-route 

のようなURLとして

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

になりますが、これは明らかに無効です。

Iは、WebLogicプラグインのためにしてみてくださいPathTrim、にPathPrepend、または何か他のいかなる量は、私は、単一のURIへのパスでプロキシにしようとしている問題を解決していない(すべてがSPAルータが残りを処理し、http://host/SPA.jspにプロキシする必要があります)

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

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

答えて

0

Apacheの書き換えルールをweblogicプラグインにうまくつなぐことができない(または少なくともどのくらい正確に動作している)Apacheの機能(Passthrough)がありました。

RewriteRule /newSection/.*$ /SPA.jsp [PT,L] 

パススルーは書き換えを行わずhttp://host/SPA.jspにURIを書き換えます。パススルーは、新しいURIをルールスタックと他のモジュールに明示的に戻します。この時点で、オリジナルのweblogicプラグインルールは、MIMEタイプ別のプロキシをクラスタ(* .jsp)に持っていたので、URIを取得してうまく動作します。

このようにして、Apacheは特定のURIへのパスのセットを書き直し、weblogicプラグインは残りのものをうまく処理します(クラスタへのプロキシ、ロードバランス、スティッキセッションなど)。ここでは)

0

は、あなたが個々のURLを指示するためのWebLogicプラグインを使用する方法、あなたの要件ごとにオプションを変更すること自由に感じている:

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

<VirtualHost *:80> 
     SSLEngine on 
     ServerName fqdn 
     ServerAlias alias 
     ServerAdmin [email protected] 
     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> 
関連する問題