Apache Tomcatは、Javaサーブレット、JavaServer Pages、Java式言語、およびJavaWebSocketテクノロジーのオープンソース実装です。これは、今日世界で最も広く採用されているアプリケーションおよびWebサーバーの1つです。 Tomcatは使いやすく、アドオンの堅牢なエコシステムを備えています。
このチュートリアルでは、CentOS8にTomcat9.0をインストールする方法について説明します。
Javaのインストール#
Tomcat9にはJavaSE8以降が必要です。 Javaプラットフォームのオープンソース実装であるOpenJDK11をインストールします。
rootまたはsudo権限を持つユーザーとして次のコマンドを実行して、Javaをインストールします。
sudo dnf install java-11-openjdk-devel
インストールが完了したら、Javaのバージョンを確認して確認します。
java -version
出力は次のようになります。
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
rootユーザーでTomcatを実行することは、セキュリティ上のリスクです。ホームディレクトリ/opt/tomcat
を使用して新しいシステムユーザーとグループを作成します Tomcatサービスを実行します。これを行うには、次のコマンドを入力します。
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcatバイナリ配布は、Tomcatダウンロードページからダウンロードできます。
執筆時点では、Tomcatの最新バージョンは9.0.30
です。 。次の手順に進む前に、Tomcat 9のダウンロードページをチェックして、新しいバージョンが利用可能かどうかを確認してください。
wget
を使用してTomcatzipファイルをダウンロードします /tmp
に ディレクトリ:
VERSION=9.0.30
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
ダウンロードが完了したら、tarファイルを/opt/tomcat
に抽出します。 ディレクトリ::
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcatは定期的に更新されます。バージョンと更新をより細かく制御するために、latest
と呼ばれるシンボリックリンクを作成します 、Tomcatインストールディレクトリを指します:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
以前に作成されたシステムユーザーは、Tomcatインストールディレクトリにアクセスできる必要があります。ディレクトリの所有権をユーザーとグループのTomcatに変更します:
sudo chown -R tomcat: /opt/tomcat
bin
内にシェルスクリプトを作成します ディレクトリ実行可能ファイル:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
これらのスクリプトは、Tomcatを開始および停止するために使用されます。
Systemdユニットファイルの作成#
Tomcatサーバーを手動で起動および停止する代わりに、サービスとして実行するように設定します。テキストエディタを開き、tomcat.service
を作成します /etc/systemd/system/
内のユニットファイル ディレクトリ:
sudo nano /etc/systemd/system/tomcat.service
次のコンテンツを貼り付けます:
/etc/systemd/system/tomcat.service[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
ファイルを保存して閉じます。
次のように入力して、新しいサービスファイルが存在することをsystemdに通知します。
sudo systemctl daemon-reload
Tomcatサービスを有効にして開始します:
sudo systemctl enable --now tomcat
サービスステータスを確認します:
sudo systemctl status tomcat
出力には、Tomcatサーバーが有効で実行されていることが示されます。
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 20:38:07 UTC; 30s ago
Process: 3957 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
...
サーバーがファイアウォールで保護されていて、ローカルネットワークの外部からTomcatインターフェースにアクセスする場合は、ポート8080
を開く必要があります。 。
次のコマンドを使用して、必要なポートを開きます。
通常、Tomcatを実稼働環境で実行する場合は、ロードバランサーまたはリバースプロキシを使用する必要があります。ポートsudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
8080
へのアクセスを許可することをお勧めします 内部ネットワークからのみ。 Tomcat Web管理インターフェースの構成#
この時点で、ポート8080
のWebブラウザでTomcatにアクセスできるはずです。 。まだユーザーを作成していないため、Web管理インターフェイスにアクセスできません。
Tomcatのユーザーとロールは、tomcat-users.xml
で定義されています。 ファイル。
ファイルを開くと、ファイルの構成方法を説明するコメントと例がファイルに入力されていることがわかります。
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Tomcat Webインターフェース(manager-guiおよびadmin-gui)にアクセスできる新しいユーザーを作成するには、以下に示すようにファイルを編集します。ユーザー名とパスワードをより安全なものに変更してください:
/opt/tomcat/latest/conf/tomcat-users.xml<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
デフォルトでは、Tomcat Web管理インターフェースは、ローカルホストからのアクセスのみを許可するように構成されています。
どこからでもWebインターフェイスにアクセスする必要がある場合は、次のファイルを開いてコメントするか、黄色で強調表示されている行を削除してください。
/opt/tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml <Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
セキュリティ上のリスクがあるため、どこからでもアクセスできるようにすることはお勧めしません。
特定のIPからのみWebインターフェースにアクセスする場合は、ブロックにコメントを付ける代わりに、パブリックIPをリストに追加します。
パブリックIPが41.41.41.41
だとします そのIPからのアクセスのみを許可したい場合:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml <Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
許可されるIPアドレスのリストは、縦棒|
で区切られたリストです。 。単一のIPアドレスを追加することも、正規表現を使用することもできます。
完了したら、Tomcatサービスを再起動して、変更を有効にします。
sudo systemctl restart tomcat
ブラウザを開き、次のように入力します:http://<your_domain_or_IP_address>:8080
インストールが正常に完了すると、次のような画面が表示されます。
Tomcat Webアプリケーションマネージャーダッシュボードを使用すると、アプリケーションをデプロイ、アンデプロイ、開始、停止、およびリロードできます。 http://<your_domain_or_IP_address>:8080/manager/html
で入手できます。 。
Tomcat仮想ホストマネージャーダッシュボードを使用すると、Tomcat仮想ホストを作成、削除、および管理できます。 http://<your_domain_or_IP_address>:8080/host-manager/html
で入手できます。 。