単純なApacheと連携やクラスタの設定は以前書いてものを参照してもらうとして、GlassFishのクラスタ構成でApacheとmod_jkでつなぐのを試す。
mod_jkの設定
# vi /etc/httpd/conf.d/jk.conf LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" JkShmFile "/tmp/jk-runtime-status" JkMount /clusterjsp/* loadbalancer # vi /etc/httpd/conf/workers.properties worker.list=loadbalancer worker.loadbalancer.balance_workers=worker1,worker2 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 worker.worker1.lbfactor=1 worker.worker1.socket_keepalive=1 worker.worker1.socket_timeout=300 worker.worker2.type=ajp13 worker.worker2.host=localhost worker.worker2.port=8010 worker.worker2.lbfactor=1 worker.worker2.socket_keepalive=1 worker.worker2.socket_timeout=300 worker.loadbalancer.type=lb # exit
ドメインとノードエージェントを起動して、パラメータ設定
$ ./bin/asadmin start-domain $ ./bin/asadmin create-jvm-options --target cluster1 "-DjvmRoute=\${AJP_INSTANCE_NAME}" $ ./bin/asadmin create-jvm-options --target cluster1 "-Dcom.sun.enterprise.web.connector.enableJK=\${AJP_PORT}" $ ./bin/asadmin create-system-properties --target instance-ONE AJP_INSTANCE_NAME=instanceONE $ ./bin/asadmin create-system-properties --target instance-ONE AJP_PORT=8009 $ ./bin/asadmin create-system-properties --target instance-TWO AJP_INSTANCE_NAME=instanceTWO $ ./bin/asadmin create-system-properties --target instance-TWO AJP_PORT=8010 $ ./bin/asadmin stop-domain $ ./bin/asadmin start-domain $ ./bin/asadmin start-node-agent --syncinstances=true cluster1-nodeagent
1台でインスタンスが 2 つあるため、設定が面倒。Webの管理ツールでインスタンスのプロパティをみるとエラーが出るのでこのやり方が正解なのか不明。バグの可能性もあるけど、そこまで見てない。そもそも、こんな構成にするなということもあるかも。
Apacheの起動
$ su # /etc/init.d/httpd restart