ウェブサイト検索

Apache と Tomcat: ステップバイステップのインストールおよび構成ガイド


この記事では、Ubuntu に Tomcat 10 をインストールして構成する方法と、mod_jk コネクタを使用して Tomcat 10 を Apache HTTP Server と統合する方法を説明します。

Apache Tomcat は、Java Web アプリケーションのデプロイと提供に使用されるオープンソース Web サーバーおよびサーブレット コンテナです。最新の Java Web フレームワークのほとんどは、JavaServer Faces、Struts、Spring などのサーブレットに基づいています。

Apache Tomcat は、デフォルトでポート 8080 で HTTP コネクタも提供します。つまり、Tomcat は HTTP サーバーとしても使用できます。ただし、Tomcat のパフォーマンスは、Apache HTTP サーバーなどの指定された Web サーバーのパフォーマンスほど良くありません。

ほとんどの実稼働環境では、Tomcat は Apache HTTP Server と組み合わせて使用されます。 Apache HTTP サーバーは、HTML、画像などの静的コンテンツを処理し、動的コンテンツのリクエストを Tomcat に転送します。

このインストールおよび構成ガイドは、Ubuntu 上の Tomcat 10 を使用する Apache に適用されます。

1.Javaをインストールする

まず、いつものように、パッケージを更新します。

sudo apt update

Tomcat サーバーを実行するには、システムに Java がインストールされている必要があります。 Tomcat 10 では、システムに Java SE 8 以降のバージョンがインストールされている必要があります。次のコマンドを実行し、OpenJDK 11 JDK パッケージをインストールします。

sudo apt install openjdk-11-jdk

現在アクティブな Java バージョンを確認します。

java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

2. Tomcat システムユーザーの作成

Tomcat サーバーをroot ユーザーで実行すると、セキュリティ リスクが発生します。したがって、Tomcat サーバーを実行するために別のユーザー アカウントを作成することをお勧めします。

次のコマンドは、システム上に tomcat という名前のユーザーとグループを作成します。

sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat

3. Apache Tomcat 10 のインストールと構成

Tomcat はプラットフォームに依存しないツールであり、Java がインストールされている限り、インストールは簡単なプロセスです。まず、公式 Web サイトから目的のバージョンをダウンロードし、ファイル システム上で解凍する必要があります。

次に、Tomcat の最新バイナリ リリースを公式の Tomcat ダウンロード ページからダウンロードします。

wget https://apache.mirrors.nublue.co.uk/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz

ダウンロードが完了したら、tar ファイルを /opt/tomcat ディレクトリに抽出します。

sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1

次に、適切なファイル権限を設定します。

sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Tomcat サーバーに Web アプリケーション マネージャーのユーザーを作成する必要があります。 Apache Tomcat Web Application Manager を使用するには、新しいユーザー アカウントを設定する必要があります。

これを行うには、エディタで tomcat-users.xml ファイルを編集します。

sudo vim /opt/tomcat/conf/tomcat-users.xml

次のコードを タグ内に貼り付けます。管理者およびマネージャーアクセスのパスワードを必ず変更してください。

<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="PASSWORD" roles="manager-gui" />

<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="PASSWORD" roles="manager-gui,admin-gui" />

Tomcat は、Web ベースの管理コンソールを提供します。デフォルトの Tomcat サーバーでは、Manager および Host Manager アプリケーションへのリモート アクセスが許可されません。ただし、ローカルホストからのみアクセスできます。

リモート接続を有効にするには、以下の手順に従ってください。

ファイルconf/Catalina/localhost/manager.xmlを作成します。

sudo vim /opt/tomcat/conf/Catalina/localhost/manager.xml

次のコンテンツを追加します。

<Context privileged="true" antiResourceLocking="false" docBase="{catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

リモート ホストのアクセスを許可するには、ホスト マネージャー Web アプリの XML ファイルを作成する必要もあります。

sudo vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml

次のコンテンツを追加します。

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

4. Tomcat Systemd サービスを作成する

Tomcat を systemd サービスとして管理するための起動スクリプトを作成する必要があります。 tomcat.service ファイルを作成しましょう。

sudo vim /etc/systemd/system/tomcat.service

以下をファイルに貼り付けます。

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

systemd デーモンをリロードして変更を適用します。

sudo systemctl daemon-reload

Tomcat が起動時に自動的に起動するように設定します。

sudo systemctl enable tomcat

5. Apache HTTP サーバーのインストール

Apache は、Ubuntu のデフォルトのソフトウェア リポジトリ内で利用できます。インストールするには、次のコマンドを入力します。

sudo apt install apache2

6. Apache と連携するように Tomcat を構成する

Apache Tomcat サーバー プロセスを Apache HTTP サーバーと統合するには、Tomcat と Apache の間のインターフェイスを実装する mod_jk モジュールが必要です。これに、ニーズに合わせて Apache と Tomcat を構成するためのいくつかの小さな手順を組み合わせます。

6.1 mod_jk モジュールのインストール

mod_jk のインストールと構成は、Web サーバーとアプリケーション サーバーを連携させるための鍵です。それでは、インストールしてみましょう:

sudo apt install libapache2-mod-jk

6.2 Apache および Tomcat を使用した mod_jk の構成。

Apache サーバーがリクエストを Tomcat にリダイレクトできるように、Tomcat で AJP コネクタを有効にする必要があります。これを行うには、Tomcat の server.xml ファイルを編集します。

sudo vim /opt/tomcat/conf/server.xml

以下の AJP コネクタがアクティブであり、コメントアウトされていないことを確認してください。

<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" />

JK モジュールをロードして初期化するように Apache HTTP サーバーを構成する必要があります。

/etc/apache2/workers.properties ファイルを作成する必要があります。このファイルは、Apache がリクエストを渡すことができる Tomcat の「ワーカー」のリストを定義します。

sudo vim /etc/apache2/workers.properties

次の内容をファイルに貼り付けます。

# Define 1 real worker using ajp13
worker.list=worker1
Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

次に、プライマリ Apache 構成ファイル apache2.conf でこのファイルを参照します。

sudo vim /etc/apache2/apache2.conf

最後に次の行を追加します。

JkWorkersFile /etc/apache2/workers.properties
Where to put jk shared memory
JkShmFile /var/log/apache2/mod_jk.shm
Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
Set the jk log level [debug/error/info]
JkLogLevel info
Select the timestamp log format
JkLogStampFormat "[ %a %b %d %H:%M:%S %Y ] "

6.3 Apache で管理する URL を構成する

この時点で、どの URL を処理して Tomcat に引き渡すか、またどの URL を Apache 自体に処理させるかを Apache に設定する必要があります。

sudo vim /etc/apache2/sites-enabled/000-default.conf

DocumentRoot エントリの下に次の行を追加します。これにより、Apache Web サーバー経由で JRS をリクエストできるようになります。

JkMount /examples worker1
JkMount /examples/* worker1

7. 動作していることを確認する方法

Apache サービスと Tomcat サービスを再起動します。

sudo systemctl restart apache2
sudo systemctl restart tomcat

サーバーを起動したら、インターネット ブラウザを開いて URL http://server_ip_address:8080 に移動します。以下のようなページが表示されれば、Tomcat は正しくインストールされています。

Apache HTTP Server と Tomcat 間の統合が機能していることを確認する簡単な方法は、Tomcat が提供するサンプル ファイルの 1 つをリクエストすることです。

ブラウザで http://server_ip_address/examples/ にアクセスし、サンプル アプリケーションのいくつかを実行します。

おめでとう! Tomcat と Apache HTTP Server が正常に統合されました。

結論

シームレスかつ高速に動作する Java ベースのアプリケーションを実行したい場合は、Apache Tomcat が最適な選択です。

このチュートリアルでは、Tomcat アプリケーション サーバーを Apache Web サーバーにインストールして構成する方法を説明しました。 Java ベースのアプリケーションを Tomcat サーバーにデプロイするための十分な情報が得られたと思います。

このガイドもお役に立てば幸いです。詳細については、Tomcat Doc にある Tomcat 公式ドキュメントを参照してください。

読んでいただきありがとうございます!フィードバックやコメントをお待ちしております。

関連記事: