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 updateTomcat サーバーを実行するには、システムに Java がインストールされている必要があります。 Tomcat 10 では、システムに Java SE 8 以降のバージョンがインストールされている必要があります。次のコマンドを実行し、OpenJDK 11 JDK パッケージをインストールします。
sudo apt install openjdk-11-jdk現在アクティブな Java バージョンを確認します。
java -versionopenjdk 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 tomcat3. 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/binTomcat サーバーに 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.targetsystemd デーモンをリロードして変更を適用します。
sudo systemctl daemon-reloadTomcat が起動時に自動的に起動するように設定します。
sudo systemctl enable tomcat5. Apache HTTP サーバーのインストール
Apache は、Ubuntu のデフォルトのソフトウェア リポジトリ内で利用できます。インストールするには、次のコマンドを入力します。
sudo apt install apache26. Apache と連携するように Tomcat を構成する
Apache Tomcat サーバー プロセスを Apache HTTP サーバーと統合するには、Tomcat と Apache の間のインターフェイスを実装する mod_jk モジュールが必要です。これに、ニーズに合わせて Apache と Tomcat を構成するためのいくつかの小さな手順を組み合わせます。
6.1 mod_jk モジュールのインストール
mod_jk のインストールと構成は、Web サーバーとアプリケーション サーバーを連携させるための鍵です。それでは、インストールしてみましょう:
sudo apt install libapache2-mod-jk6.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.confDocumentRoot エントリの下に次の行を追加します。これにより、Apache Web サーバー経由で JRS をリクエストできるようになります。
JkMount /examples worker1
JkMount /examples/* worker17. 動作していることを確認する方法
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 公式ドキュメントを参照してください。
読んでいただきありがとうございます!フィードバックやコメントをお待ちしております。






