GlassFishとApacheの連携

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 より上とかは動かないみたいな記述もあった気がする)。次は、クラスタ構成での確認かね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です