説明
場合によっては、LoadBalancer プラグインが Web Server 7 と、生成された loadbalancer.xml ファイルに正しくインストールされても、LoadBalancer が正しく初期化しないことがあります。
たとえば、次のようなシナリオを考えてみます。
LoadBalancer プラグインをインストールする前に、ユーザーが Web Server 仮想ホストに指定の構成を実行したとします (Web Server 仮想サーバーログを優先)。この場合、Web Server が新しい obj.conf ファイルを作成し、仮想ホスト名 <WS仮想ホスト名> -obj.conf を付けます。
LoadBalancer プラグインのインストール時に、このプロセスが自動的に Web Server の各種構成ファイル (server.xml、 magnus.conf、obj.conf) を更新しますが、<WS仮想ホスト名>-obj.conf は更新されません。
この場合、問題は、<WS仮想ホスト名> -obj.conf ファイルが Web Server 起動シーケンスにあるほかの構成ファイルよりも優先されてしまい、必須の lbplugin エントリが見つからず、エラーメッセージが表示されなくても、LoadBalancer が完全に初期化されないことにあります。
解決法
次のエントリを <WS仮想ホスト名> -obj.conf ファイルに手動で追加します。
<Object name="default"> タグの下に、次を 1 行で追加します。
NameTrans fn="name-trans-passthrough" name="lbplugin" \ config-file="/opt/SUNWwbsvr7/https-<ws_config_name>/config/loadbalancer.xml" |
ファイルの最後に、次を追加します。
<Object name="lbplugin"> PathCheck fn="deny-existence" path="*/WEB-INF/*" ObjectType fn="force-type" type="magnus-internal/lbplugin" Service type="magnus-internal/lbplugin" fn="service-passthrough" Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html" </Object> <Object ppath="*lbconfigupdate*"> PathCheck fn="get-client-cert" dorequest="1" require="1" </Object> <Object ppath="*lbgetmonitordata*"> PathCheck fn="get-client-cert" dorequest="1" require="1" </Object> |
これらの変更が済んだら、LoadBalancer を再起動します。