前に 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