mod_jk コネクタを使用して Apache2 を Tomcat 7 と統合する
Apache は、利用可能な Web サーバーの中で最も人気があります。 Web サーバーは基本的に、クライアントからのリクエストを受け入れ、それらのリクエストに対する応答を送信するために使用されます。 URL を取得し、それをファイル名に変換し (静的リクエストの場合)、そのファイルをローカル ディスクからインターネット経由で送り返すか、それをプログラム名に変換して実行し、そのプログラムの出力を送り返します。インターネット経由で要求側に送信されます。 Web サーバーがリクエストを処理して完了できなかった場合は、代わりにエラー メッセージを返します。
この記事では、Apache の機能と、mod_jk コネクタを使用して Apache を Tomcat8 および Tomcat7 と統合する方法をリストします。
Apache の機能
前述したように、Apache は利用可能な Web サーバーの中で最も人気があります。人気の理由は次のような特徴です。
- 無料のツールなので、簡単にダウンロードしてインストールできます。
- オープンソースの Web サーバーであるため、コードを簡単に確認し、調整し、最適化し、エラーやセキュリティ ホールを修正できます。新しい機能やモジュールを追加することもできます。
- 1 ~ 2 ページの小規模な Web サイトにも、毎月数百万人の定期訪問者にサービスを提供する数百、数千ページの大規模な Web サイトにも使用できます。静的コンテンツと動的コンテンツの両方を提供できます。
- キャッシュ モジュール (mod_cache、mod_disk_cache、mod_mem_cache) が改善されました。
- Apache 2 は、インターネット プロトコル IPv6 をサポートします。
Tomcat ディレクトリ
$ {tomcat_home} は tomcat のルート ディレクトリです。 Tomcat のインストールには次のサブディレクトリが必要です。
- $ {tomcat_home}\conf – さまざまな構成ファイルを配置できる場所
- $ {tomcat_home}\webapps – サンプル アプリケーションが含まれています
- $ {tomcat_home}\bin – Web サーバー プラグインを配置する場所
Mod_jk モジュール
mod_jk は、バイナリとソースの 2 つの形式で取得できます。 Web サーバーを実行しているプラットフォームによっては、mod_jk のバイナリ バージョンが利用できる場合があります。バイナリ バージョンが利用可能な場合は、それを使用することをお勧めします。
mod_jk モジュールは以下で開発およびテストされました。
- Linux、FreeBSD、AIX、HP-UX、MacOS X、Solaris、および Apache 1.3 および/または 2.x をサポートする主要な Unix プラットフォームで動作する必要があります
- 0-i386 SP4/SP5/SP6a (他のサービス パックでも動作できるはず)、Win2K、WinXP、Win98
- Cygwin (Apache サーバーと autoconf/automake サポート ツールが存在するまで)
- ネットウェア
- i5/OS V5R4 (システム I)、Apache HTTP サーバー 2.0.58。必ず最新の Apache PTF をインストールしてください。
- Tomcat 3.2 から Tomcat 8 へ。
mod_jk には 2 つのエンティティが必要です。
- mod_jk.xxx – Apache HTTP サーバー モジュール。オペレーティング システムに応じて、mod_jk.so、mod_jk.nlm、または MOD_JK.SRVPGM になります。
- workers.properties – ホストとワーカー (Tomcat プロセス) によって使用されるポートを記述するファイル。サンプルの works.properties は、ソース ダウンロードの conf ディレクトリの下にあります。
また、他の Apache HTTP サーバー モジュールと同様に、mod_jk を最初に Apache ウェブサーバーのモジュール ディレクトリ /usr/lib/apache にインストールし、httpd.conf ファイルを更新する必要があります。
インストール
インストールを開始する前に、root 以外のユーザー システムに「sudo」権限が必要です。ここでインストールを開始するので、次のコマンドを使用して Apache2 と Tomcat をインストールします。
sudo apt-get install apache2
sudo apt-get install tomcat7
sudo apt-get install tomcat7-admin
次に、次のコマンドを使用して Tomcat のテスト アプリケーションを作成します。
cd /var/lib/tomcat7/webapps
sudo mkdir tomcat-demo
sudo mkdir tomcat-demo/goodmoring
sudo vim tomcat-demo/helloworld/index.jsp
そして、次のコードを貼り付けます。
<HTML>
<HEAD>
<TITLE>Good Morning</TITLE>
</HEAD>
<BODY>
<H1>Good Morning</H1>
Today is: <%= new java.util.Date().toString() %>
</BODY>
</HTML>
すべて問題ありません。次のコマンドを使用して mod_jk をインストールして構成します。
sudo apt-get install libapache2-mod-jk
次のコマンドを使用して、Tomcat でリダイレクト ポート 8443 を有効にすることから始める必要があります。
sudo vim /etc/tomcat7/server.xml
そして、次の行のコメントを解除します。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
その後、次のコマンドを使用して、Apache 用の works.properties ファイルを作成します。
sudo vim /etc/apache2/workers.properties
次のテキストを貼り付けます。
Define 1 real worker using ajp13
worker.list=worker
# Set properties for worker (ajp13)
worker.worker.type=ajp13
worker.worker.host=localhost
worker.worker.port=8009
次に、次のコマンドを使用して、Apache にこのワーカーを使用させます。
sudo vim /etc/apache2/mods-available/jk.conf
そして、JkWorkersFile プロパティを次のように変更します。
/etc/apache2/workers.properties
最後に URL を設定するには、Apache が Tomcat を通過する必要があります。
sudo vim /etc/apache2/sites-enabled/000-default
そして、設定ファイルに次の行を追加します。
<VirtualHost *:80>
.......................................
.......................................
JkMount /tomcat-demo* worker1
</VirtualHost *:80>
これで、次のコマンドを使用してサーバーを再起動し、機能を確認できるようになります。
sudo /etc/init.d/tomcat7 restart
sudo /etc/init.d/apache2 restart
結論
この記事では、mod_jk コネクタを使用して Apache2 と Tomcat 7 を構成およびインストールする方法を説明しました。