TcomcatとApacheとの連携
単純なHtmlで構成された静的なページと、JSP/Servlet等の動的なページが混在するサイトを
運営する場合、Tomcatのみで構成する方法と、ApacheとTomcatを連携させて構成する方法が
あります。
しかし、こういった場合はApacheとTomcatを連携して使用する事が推奨されています。
理由としては、Tomcatに比べるとApacheは以下の点で優れているからです。
- Apacheの方が細かな設定ができる事
- Apacheは世界中で使用され、信頼性が高い事
- 静的なページの実行速度はApacheの方が高速である事
また、TomcatとApacheを連携させると、Servlet/JSP のページにアクセスするのに、Apacheと同じ
ポートでアクセスすることができます。例えば
http://192.168.1.1:8080/sample/sample.jsp と指定していたものを、
http://192.168.1.1/sample/sample.jsp と,ポート番号の入力を省略した形でアクセスできます。
このようにファイアーウォールで開けなければいけないポートを減らせることも、メリットの一つです。
ApacheとTomcatを連携させるためには、コネクタと呼ばれるものが必要です。
ApacheはTomcatが処理すべきリクエストがあった場合、コネクタを通してTomcatにリクエストを転送します。
このページではコネクタの一つである mod_jk を利用し、Tcomcatのインストールと基本設定で作成したsample.jspをApacheと
連携して動作させる方法について解説します。
※mod_jk2については開発が終了してしまいましたが、
こちらにて解説しています。
mod_jkはGentoo Linuxではunstableとなっています。
unstableのパッケージであるmod_jkをインストールできるように /etc/portage/package.keywords に以下を追加します。
www-mod/mod_jk ~x86
mod_jkをインストールします。
# emerge mod_jk
mod_jkの設定は、/etc/apache2/jk-workers.properties を編集します。
以下はデフォルトの設定内容です。
ワーカajp13のみを使用する場合はデフォルトで設定されているため、編集する必要はありません。
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.lbfactor=1
worker.ajp13.cachesize=10
Tomcatが処理すべきURLと、ワーカを設定します。ここでの指定にマッチしたURLがリクエストされた場合、
Tomcatが処理を行います。
設定するファイルは、/etc/apache2/modules.d/88_mod_jk.conf です。
jkMount /*.jsp ajp13
ワーカ ajp13 は /etc/apache2/jk-workers.properties にデフォルトで定義されています。
ワーカとはServletリクエストを処理するTomcatのインスタンスのことです。
インストール完了後、Apacheの起動オプションを編集し、Apache を再起動します。
/etc/conf.d/apache2を編集し、起動オプションに "-D JK"を追加します。
APACHE2_OPTS="-D JK"
ApacheとTomcatを再起動します。
# /etc/init.d/apache2 restart
# /etc/init.d/tomcat5 restart
http://192.168.1.1/sample/sample.jspにブラウザからアクセスし、動作確認をしてみてください。
|
Apacheと連携した場合のsampleアプリケーション実行結果
|