前に Apache と GlassFish を mod_jk で連携させたい という記事 (Sep 30, 2012) を書きました. いま改めて復習してみますと, もう少し手順を簡略化することができるとわかりましたので, その補足を書きたいと思います.
GlassFish の設定
まず GlassFish の asadmin
コンソールで, JK Connector のネットワークリスナーを作成します. 以下のコマンドを実行します.
asadmin> create-network-listener --protocol http-listener-1 --listenerport 8009 --jkenabled true jk-connector
これを実行して, 特にエラーもなく,
Command create-network-listener executed successfully.
と表示されれば OK でしょう. 念のため, ネットワークリスナーのリストを表示してみます.
asadmin> list-network-listeners http-listener-1 http-listener-2 admin-listener jk-connector Command list-network-listeners executed successfully. asadmin>
いま作成したばかりの jk-connector
という名前のネットワークリスナーも表示されています.
また, OS の netstat
コマンドでも, すでに 8009/tcp が LISTEN になっていることを確認することができるはずです.
mod_jk の設定
Debian6 (Debian Squeeze) では, /etc/apache2
と, そのサブディレクトリに, Apache HTTP Server 関連の各種の設定を置くことになっています. ただ, デフォルトでは mod_jk
に関する設定が何もなされていませんので, それをおこなう必要があります.
そこで, /etc/apache2/conf.d
に何か適当な名前 (mod_jk.conf
とか) のファイルを作成して, 以下のように書いてみます.
<IfModule mod_jk.c> JkWorkerProperty worker.list=worker1 JkWorkerProperty worker.worker1.type=ajp13 JkWorkerProperty worker.worker1.host=127.0.0.1 JkWorkerProperty worker.worker1.port=8009 JkMount / worker1 </IfModule>
前の記事では mod_jk.conf
と workers.properties
とに書き分けていましたが, 実際にはこのように mod_jk.conf
にまとめて書くことができるようです. これは気づきませんでした.
もうひとつ忘れてはならないのが, 前の記事でも書きましたが, JkMount
の設定を各バーチャルホストに適用することです. デフォルトでは, /etc/apache2/apache2.conf
の末尾に以下の記述がありますが,
# Include the virtual host configurations: Include sites-enabled/
ここで指定されている /etc/apache2/sites-enabled
には, 000-default
という名前のシンボリックリンクがひとつあるだけです.
シンボリックリンクが指している /etc/apache2/sites-available/default
というファイルの内容は次のようになっています. (ここではタブ 1 個をスペース 4 個に置き換えて引用します.)
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
そこで, もっとも手っ取り早い方法として, <VirtualHost *:80>
のすぐ下に, JkMountCopy On
という一行を書き加えます. たとえば, 次のようにです.
<VirtualHost *:80> JkMountCopy On : : <VirtualHost>
あとは, Apache HTTP Server を再起動すれば, JkMount
の適用も含めて mod_jk.conf
に書いた設定内容が反映されることになるはずです.
まとめ
以上, 前回よりもいくらか簡略化した手順で, Apache と GlassFish を mod_jk で連携させることができました. おしまい.
No comments:
Post a Comment