TOP > オープンソースソフトウェア環境構築 > mod_jkによるApache-GlassFish連携環境の構築
mod_jkによるApache-GlassFish連携環境の構築■ GlassFishとApacheの連携
mod_jkによるApache-GlassFish連携環境を構築する機会があったのでここに紹介したい。mod_jkによってApacheとTomcatを連携させるのは良く知られているが、ApacheとGlassFishでも同じことが可能である。ただし、やることは非常に多く難易度は高い。ネタ元は↓。
<Amy Roh's Blog>
http://weblogs.java.net/blog/amyroh/archive/2006/08/glassfish_suppo.html
■ Apache-GlassFish連携に必要なもの
Apache-GlassFish連携環境の構築はFedora Core 5にて行った。必要なものは以下である。
- Apache(httpd) Fedora Core 5に付属の2.2.0
- GlassFish V2
- Tomcat 5.5(tomcat-ajp.jar等一部のファイルを流用。実行時に必要なわけではない。)
- mod_jkのバイナリ
GlassFishのインストールについては「GlassFish環境構築」を参照いただきたい。Tomcatは5.5.25がリリースされているようだがこちらで確認したのは5.5.23である。mod_jkは1.2.26がリリースされているようだがこちらで確認したのは1.2.21である。
<Tomcat 5.5>
http://tomcat.apache.org/download-55.cgi
<Tomcat Connectors(mod_jk) Downloads>
http://tomcat.apache.org/download-connectors.cgi
<mod_jk 1.2.21>
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.21/mod_jk-1.2.21-apache-2.2.x-linux-i686.so
■ mod_jkのインストール
1.mod_jkモジュールの配置
ダウンロードしたmod_jk(mod_jk-1.2.21-apache-2.2.x-linux-i686.so)をmod_jk.soにリネームして/etc/httpd/modulesに配置する。
2.httpd.confファイルの変更
mod_jkモジュールの読み込み及びBASIC認証設定のために、/etc/httpd/conf/httpd.confに以下を追加する。
# mod_jk
LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c>
Include conf/mod_jk.conf
</IfModule>
# Basic auth
<Location "/">
AuthType Basic
AuthName "Enter username and password"
AuthUserFile /etc/httpd/.htpasswd
AuthGroupFile /dev/null
Require valid-user
</Location>
|
3..htpasswdファイルの作成
以下のコマンドを実行する。追加したユーザ名は.htpasswdファイルを参照すれば確認できる。
# htpasswd -c /etc/httpd/.htpasswd ユーザ名
|
ここでユーザ名はBASIC認証を行うユーザ名である。
4.mod_jk.confファイルの作成
すべてのJSPへのアクセスは後段のGlassFishに連携する設定を行う。/etc/httpd/confディレクトリにmod_jk.confファイルを以下の内容で作成する。
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /var/httpd/logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /*.jsp ajp13
|
5.workers.propertiesファイルの作成
/etc/httpd/confディレクトリにworkers.propertiesファイルを以下の内容で作成する。
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.cachesize=10
|
■ GlassFishへのAJPコネクタモジュールのインストール
1.tomcat-ajp.jarの配置
別途インストール済みのTomcatからGlassFishで利用するために、以下のjarファイルを(Tomcatインストールディレクトリ)/server/libから(GlassFishインストールディレクトリ)/libにコピーする。
- tomcat-ajp.jar
- commons-logging-1.1.jar(別途Jakartaのサイトからダウンロード)
- commons-modeler-2.0.jar
<Apache Jakarta Project>
http://jakarta.apache.org/
2.AJPコネクタモジュールの設定
GlassFishのasadminコマンドで以下のJVMオプションを追加する。ただし、GlassFishをあらかじめ起動しておく必要がある。尚、ここで追加したJVMオプションはGlassFishの起動時のログで確認できる。
$ asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009
|
3.glassfish-jk.propertiesファイルの作成
(GlassFishインストールディレクトリ)/domains/(ドメイン名)/configディレクトリに以下の内容でglassfish-jk.propertiesファイルを作成する。これをやらないとREMOTE_USER情報がGlassFishに渡されない。
tomcatAuthentication=false
|
4.glassfish-jk.propertiesファイルの設定
GlassFishのasadminコマンドで以下のJVMオプションを追加する。
$ asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK.propertyFile
=(GlassFishインストールディレクトリ)/domains/(ドメイン名)/config/glassfish-jk.properties
|
5.GlassFishの再起動
これでApache-GlassFish連携が可能となり、GlassFishにREMOTE_USER情報が渡される。 (2008/01/09)
Copyright(C) 2004-2009 モバイル開発系(K) All rights reserved.
[Home]
|