私たちは長年、Mod_wl プラグインを備えた Apache サーバーを使用して、複数のバックエンド Weblogic Web サーバーへのセッションのバランスを取ってきました。
それからしばらくして、同じ Apache を他の内部アプリケーションへのリバース プロキシにも使用し始めました。そこで、なぜ Apache サーバーだけでなく、独自の mod_proxy と mod_proxy_balancer も使用して、独自のバックエンド Weblogic Web サーバーへのバランス調整を行わないのか疑問に思っています。
この独自のプラグインには何か利点がありますか? それとも、何年も前に Apache Config だけで同じことを実現するのはそれほど簡単ではなかったのでしょうか? テストのために Mod_wl プラグインなしでセットアップを試してみましたが、セッションのスティッキー性については問題なく動作しているように見えますが、何らかの理由で Weblogics によって設定された既存の J2SESSIONID では動作しないため、Apache 経由で新しい Cookie を追加する必要があったようです。
そこで、次の
Header add Set-Cookie "J2ROUTE=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://backends>
BalancerMember http://localhost:9001 route=1
BalancerMember http://localhost:9002 route=2
ProxySet stickysession=J2ROUTE
</Proxy>
mod_wl を使用して、この以前の構成と同じことを実行するようです。
SetHandler weblogic-handler
WebLogicCluster localhost:9001,localhost:9002
WLCookieName J2SESSIONID
これはもちろん簡略化された設定例です。したがって、独自のプラグインが動作しているので、それを使い続けるかどうかわからない場合は、勝利チームを変更しないでください。または、よりオープンソースの Apache ソリューションに移行してください。
答え1
Weblogic プラグインはバックエンド クラスターと「通信」し、クラスターのメンバーが報告する利用可能なバックエンドのリストを更新します。つまり、Apache 関連の構成にまったく触れることなく、クラスターに複数の新しいメンバーを追加できます。
Oracle はまた、Weblogic への特定の場所のリバース プロキシを指定するための、「SetHandler」メソッドよりも機敏で負荷の少ない方法として、WLSRequest を宣伝しています。
そうは言っても、mod_wl はサードパーティ製であり、これまでイベント mpm に関する問題が判明しています。たとえば、graceful を発行すると、実際に再起動を発行するまで、使用されているプロセスは確実に正常に終了するサイクルでハングします。maxconnectionsperchild も使用できません。そうしないと、同じ影響で時間の経過とともに子プロセスが失われます (httpd 開発者は、リリース間近のバージョン 2.4.33 でこの問題を回避していると思います)。
したがって、私は Oracle のドキュメントを確認して両方のオプションをテストしますが、最近ではサードパーティ以外の選択肢、つまり mod_proxy を使用する傾向にあります。
お試しいただいた後、ご報告いただければ幸いです。