Sun Java System Webserverをロードバランサのとこに使うのも何なので、Apacheに切り替えてみる。クラスタ構成でApacheとつなごうと思ったのだけど、うまくいかないので、まずは、クラスタじゃないシンプルなGlassFishとApacheの連携を確認してみる。SunのApplication Server のところにもプラグインを使ったApacheとのつなぎ方が書いてあるみたいなんだけど、Apacheをビルドするのも何だかなという気もするので、mod_jk経由でやってみる。ちなみに、また、CentOS5。
GlassFish のインストール
$ java -Xmx256m -jar /tmp/glassfish-installer-v2ur1-b09d-linux.jar $ cd glassfish/ $ ant -f setup.xml
mod_jk のインストール
(httpd-develを入れておく)
$ cd /tmp $ wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz $ tar zxvf tomcat-connectors-1.2.26-src.tar.gz $ cd tomcat-connectors-1.2.26-src/native/ $ ./configure --with-apxs=/usr/sbin/apxs $ make # su # make install
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 /hello/* worker1 # vi /etc/httpd/conf/workers.properties worker.list=worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost.localdomain worker.worker1.port=8009 worker.worker1.lbfactor=50 worker.worker1.cachesize=10 worker.worker1.cache_timeout=600 worker.worker1.socket_keepalive=1 worker.worker1.socket_timeout=300 # exit
Tomcat jar ファイルをGlassFishに入れる
$ cd /tmp/ $ wget http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.23/bin/apache-tomcat-5.5.23.tar.gz $ tar zxvf apache-tomcat-5.5.23.tar.gz $ cd [glassfish_home] $ cp /tmp/apache-tomcat-5.5.23/server/lib/tomcat-ajp.jar lib/ $ cp /tmp/apache-tomcat-5.5.23/server/lib/commons-modeler-2.0.jar lib/ $ cp /tmp/apache-tomcat-5.5.23/bin/commons-logging-api.jar lib/
ドメインを起動して、サンプルアプリケーションを配備
$ wget http://glassfish.dev.java.net/downloads/quickstart/hello.war $ ./bin/asadmin start-domain $ ./bin/asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009 $ cp hello.war domains/domain1/autodeploy/ $ ./bin/asadmin stop-domain $ ./bin/asadmin start-domain
Apacheの起動
$ su # /etc/init.d/httpd start
という感じで、できるみたい(そうそう、いろいろ調べていたら、Tomcat は 5.5.23 より上とかは動かないみたいな記述もあった気がする)。次は、クラスタ構成での確認かね。