この記事では、UbuntuにTomcat 10をインストールして構成する方法と、mod_jkコネクタを使用してApacheHTTPサーバーと統合する方法を示します。
Apache Tomcatは、JavaWebアプリケーションのデプロイと提供に使用されるオープンソースのWebサーバーおよびサーブレットコンテナです。最新のJavaWebフレームワークのほとんどは、JavaServer Faces、Struts、Springなどのサーブレットに基づいています。
Apache Tomcatは、デフォルトでポート8080にHTTPコネクタも提供します。つまり、TomcatはHTTPサーバーとしても使用できます。ただし、Tomcatのパフォーマンスは、ApacheHTTPサーバーなどの指定されたWebサーバーのパフォーマンスほど良くありません。
ほとんどの本番環境では、TomcatはApacheHTTPサーバーと組み合わせて使用されます。 Apache HTTPサーバーは、HTMLや画像などの静的コンテンツに対応し、動的コンテンツのリクエストをTomcatに転送します。
このインストールおよび構成ガイドは適用 Ubuntu上のTomcat10でApacheに。
1。 Javaをインストールする
まず、いつものように、パッケージを更新します:
sudo apt update
Tomcatサーバーを実行するには、システムにJavaがインストールされている必要があります。 Tomcat 10には、システムにJavaSE8以降のバージョンがインストールされている必要があります。次のコマンドを実行して、OpenJDK11JDKパッケージをインストールします。
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サーバーを実行する ユーザーはセキュリティリスクです。したがって、Tomcatサーバーを実行するために別のユーザーアカウントを作成することをお勧めします。
次のコマンドは、tomcat
という名前のユーザーとグループを作成します。 システム上:
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
3。 ApacheTomcat10をインストールして構成する
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サーバーでWebApplicationManagerのユーザーを作成する必要があります。 Apache Tomcat Webアプリケーションマネージャを使用するには、新しいユーザーアカウントを設定する必要があります。
これを行うには、tomcat-users.xml
を編集します エディター内のファイル:
sudo vim /opt/tomcat/conf/tomcat-users.xml
次のコードを<tomcat-users>
内に貼り付けます </tomcat-users>
タグ。必ずPASSWORD
を変更してください 管理者およびマネージャーのアクセス用。
<!-- 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およびHostManagerアプリケーションへのリモートアクセスは許可されていません。ただし、ローカルホストからのみアクセスできます。
リモート接続を有効にするには、以下の手順に従ってください。
ファイルを作成します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>
また、リモートホストにアクセスできるようにするには、host-managerwebappの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。 TomcatSystemdサービスを作成する
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。 ApacheHTTPサーバーをインストールする
Apacheは、Ubuntuのデフォルトのソフトウェアリポジトリ内で利用できます。インストールするには、次のコマンドを入力します。
sudo apt install apache2
6。 Apacheで動作するようにTomcatを構成する
ApacheTomcatサーバープロセスをApacheHTTPサーバーと統合するには、mod_jkモジュールが必要です 、TomcatとApacheの間のインターフェースを実装し、ApacheとTomcatをニーズに合わせて構成するためのいくつかの小さな手順を組み合わせます。
6.1mod_jkモジュールのインストール
mod_jkのインストールと構成 Webサーバーとアプリケーションサーバーを連携させるための鍵です。それでは、インストールしましょう:
sudo apt install libapache2-mod-jk
6.2Apacheおよび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モジュールをロードして初期化するようにApacheHTTPサーバーを構成する必要があります。
/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.3Apacheで管理するURLを構成する
この時点で、Apacheを構成して、処理してTomcatにハンドオフするURLと、Apache自体に処理させるURLを指示する必要があります。
sudo vim /etc/apache2/sites-enabled/000-default.conf
DocumentRoot
の下に次の行を追加します エントリ。これにより、ApacheWebサーバーを介して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サーバーとTomcatの統合が機能していることを確認する簡単な方法は、Tomcatが提供するサンプルファイルの1つを要求することです。
ブラウザでhttp://server_ip_address/examples/
を指定します いくつかのサンプルアプリケーションを実行します。
おめでとう! TomcatとApacheHTTPServerの統合に成功しました。