- PR -

Apache2.0+Tomcat5.0+JK1.2環境でのロードバランス固定について

1
投稿者投稿内容
LostProfessor
会議室デビュー日: 2004/01/23
投稿数: 3
お住まい・勤務地: 東京
投稿日時: 2007-01-24 02:14
どうにかしてTomcatのActive/Standbyの環境を構築したいと考えています。

現在、3台のサーバで以下のような環境を構築しています。
サーバA:Apache2.0、JK1.2
サーバB:Tomcat5.0
サーバC:Tomcat5.0

ApacheとTomcatの連携はJKコネクタを使用しています。
また、JKコネクタのロードバランスをworkers.propertiesに以下のように設定しています。
===========================================================
worker.list=sample

worker.sample.type=lb
worker.sample.balanced_workers=A, B
worker.sample.sticky_session=1
worker.sample.local_worker_only=1

worker.B.port=8009
worker.B.host=192.168.1.101
worker.B.type=ajp13
worker.B.lbfactor=1
worker.B.local_worker=1

worker.C.port=8009
worker.C.host=192.168.1.102
worker.C.type=ajp13
worker.C.lbfactor=0
worker.C.local_worker=0
===========================================================

この設定ではサーバCのTomcatにアクセスが行ってしまい、希望する動作になりません。

どのように設定すればサーバBがダウンしたときだけサーバCにアクセスするようになるのでしょうか?

ご教授よろしくお願いいたします。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-01-24 12:31
引用:

LostProfessorさんの書き込み (2007-01-24 02:14) より:

この設定ではサーバCのTomcatにアクセスが行ってしまい、希望する動作になりません。
どのように設定すればサーバBがダウンしたときだけサーバCにアクセスするようになるのでしょうか?



local_worker系ってmod_jk2にしかないのでは?

この設定ではサーバCには一切振られないでしょうし、
それ以前にエラーになりそうな気もしなくはないです。

mod_jk 1.2.20では、
worker.B.redirect = C
worker.C.activation = disabled
とすればサーバBの障害発生時だけサーバCが使われます。

あと、mod_jkはタイムアウト系の設定をしっかりしないと
障害の検知が実用にならないので注意した方がいいと思います。
LostProfessor
会議室デビュー日: 2004/01/23
投稿数: 3
お住まい・勤務地: 東京
投稿日時: 2007-01-24 13:20
引用:

あしゅさんの書き込み (2007-01-24 12:31) より:

local_worker系ってmod_jk2にしかないのでは?

この設定ではサーバCには一切振られないでしょうし、
それ以前にエラーになりそうな気もしなくはないです。


http://www.jajakarta.org/tomcat/tomcat-jk2/ja/docs/jk/workershowto.html
の[拡張されたlbワーカのプロパティ]の項目を見ると
JK 1.2.xで追加されたとかかれているのですが。
また、特にエラーが出ている形跡はなかったので、動作していると思っていました。

引用:

mod_jk 1.2.20では、
worker.B.redirect = C
worker.C.activation = disabled
とすればサーバBの障害発生時だけサーバCが使われます。



現状のJK1.2の設定に上記を追加し、local_workerの設定をコメントアウトして動作
させてみたのですが、BにもCにもアクセスが行ってしまいました。
ちなみにJK1.2.15なのですが、バージョンのミスマッチが原因として考えられるのでしょうか?

引用:

あと、mod_jkはタイムアウト系の設定をしっかりしないと
障害の検知が実用にならないので注意した方がいいと思います。


ご教授ありがとうございます。
参考にさせていただきます。

最後に、ごく基本的な質問なのですが、既にJK2はメンテナンスされておらず、JK1を使用する方がいいとどこかで見たことがあるのですが、JK2を使用した方がいいのでしょうか?

[ メッセージ編集済み 編集者: LostProfessor 編集日時 2007-01-24 13:21 ]
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-01-24 13:39
引用:

LostProfessorさんの書き込み (2007-01-24 13:20) より:
現状のJK1.2の設定に上記を追加し、local_workerの設定をコメントアウトして動作
させてみたのですが、BにもCにもアクセスが行ってしまいました。



ええと、
コード:
worker.sample.balanced_workers=A, B


どう見てもCってworkerは無さそうなのですが…。

引用:

最後に、ごく基本的な質問なのですが、既にJK2はメンテナンスされておらず、JK1を使用する方がいいとどこかで見たことがあるのですが、JK2を使用した方がいいのでしょうか?



mod_jk 1.2.15はmod_jk1なのでそのままでいいです。
mod_jk2とは別物です。

mod_jk 1.2.15ならば、worker.C.disabled = trueですね。
事前に使っているmod_jkの詳細バージョンまで書いた方がいいですよ。
LostProfessor
会議室デビュー日: 2004/01/23
投稿数: 3
お住まい・勤務地: 東京
投稿日時: 2007-01-24 16:06
引用:

あしゅさんの書き込み (2007-01-24 13:39) より:

ええと、
コード:
worker.sample.balanced_workers=A, B


どう見てもCってworkerは無さそうなのですが…。


申し訳ございません、こちらの転記ミスでした。
サーバの設定では
worker.sample.balanced_workers=B,C
となっております。

引用:

mod_jk 1.2.15はmod_jk1なのでそのままでいいです。
mod_jk2とは別物です。
mod_jk 1.2.15ならば、worker.C.disabled = trueですね。
事前に使っているmod_jkの詳細バージョンまで書いた方がいいですよ。


ご指摘ありがとうございます。
上記のプロパティを設定したところ、正常動作いたしました。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)