Tomcatは、Javaベースのアプリケーションをデプロイするために使用される無料のオープンソースで軽量のアプリケーションサーバーです。スタンドアロンサーバーとして使用することも、ApacheやNginxなどの他のサーバーと組み合わせて使用することもできます。これは、Javaサーブレットと対話するための拡張機能を提供し、Javaプラットフォームのいくつかの技術仕様も実装します。現在、TomcatはJavaで最も広く使用されているアプリケーションサーバーの1つです。
このチュートリアルでは、Debian10にNginxを使用してTomcat9をインストールする方法を紹介します。
- Debian10を実行しているサーバー。
- サーバーIPで指定された有効なドメイン名。
- ルートパスワードはサーバーで構成されています。
開始する前に、APTキャッシュを最新バージョンに更新することをお勧めします。次のコマンドを実行して更新できます:
apt-get update -y
システムパッケージキャッシュが最新になったら、次の手順に進むことができます。
Javaのインストール
TomcatはJavaベースのアプリケーションであるため、サーバーにJavaをインストールする必要があります。インストールされていない場合は、次のコマンドでインストールできます。
apt-get install default-jdk -y
Javaがインストールされたら、次のコマンドを使用してJavaのバージョンを確認できます。
java --version
次の出力が得られるはずです:
openjdk 11.0.9.1 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)
終了したら、次のステップに進むことができます。
まず、Tomcatサーバーを実行するための専用ユーザーを作成する必要があります。次のコマンドで作成できます:
useradd -m -U -d /opt/tomcat -s /bin/false tomcat
次に、次のコマンドを使用して最新バージョンのTomcatをダウンロードします。
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz
ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを抽出します。
tar -xvzf apache-tomcat-9.0.45.tar.gz
次に、次のコマンドを使用して、抽出したディレクトリを/optに移動します。
mv apache-tomcat-9.0.45 /opt/tomcat/tomcat
次に、次のコマンドを使用して適切な権限と所有権を設定します。
chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat
終了したら、次のステップに進むことができます。
次に、Tomcatサービスを管理するためのsystemdサービスファイルを作成する必要があります。次のコマンドで作成できます:
nano /etc/systemd/system/tomcat.service
次の行を追加します:
[Unit] Description=Tomcat 9.0 servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/default-java" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom" Environment="CATALINA_BASE=/opt/tomcat/tomcat" Environment="CATALINA_HOME=/opt/tomcat/tomcat" Environment="CATALINA_PID=/opt/tomcat/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/tomcat/bin/startup.sh ExecStop=/opt/tomcat/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
ファイルを保存して閉じてから、次のコマンドを使用してsystemdデーモンをリロードします。
systemctl daemon-reload
次に、Tomcatサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。
systemctl start tomcat
systemctl enable tomcat
次のコマンドを使用して、Tomcatのステータスを確認することもできます。
systemctl status tomcat
次の出力が得られるはずです:
? tomcat.service - Tomcat 9.0 servlet container Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2021-04-14 05:41:21 UTC; 42s ago Process: 5784 ExecStart=/opt/tomcat/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5791 (java) Tasks: 30 (limit: 4701) Memory: 159.1M CGroup: /system.slice/tomcat.service ??5791 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcat/conf/logging.properties -Djava.util.log Apr 14 05:41:21 debian systemd[1]: Starting Tomcat 9.0 servlet container... Apr 14 05:41:21 debian startup.sh[5784]: Tomcat started. Apr 14 05:41:21 debian systemd[1]: Started Tomcat 9.0 servlet container.
終了したら、次のステップに進むことができます。
次に、TomcatWebインターフェースにアクセスするためのユーザーを定義する必要があります。 tomcat-users.xmlファイルを使用して定義できます:
nano /opt/tomcat/tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="tomcatadmin" password="password" roles="admin-gui,manager-gui"/>
終了したら、ファイルを保存して閉じます。
デフォルトでは、TomcatWebインターフェースはローカルホストからのみアクセスするように構成されています。したがって、外部アクセス用に構成する必要があります。
Managerアプリの場合は、次の行を編集します。
nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml
Host Managerアプリの場合は、次のファイルを編集します。
nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml
次の行を削除します:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
ファイルを保存して閉じてから、Tomcatサービスを再起動して変更を適用します。
systemctl restart tomcat
終了したら、次のステップに進むことができます。
次に、NginxをTomcatのリバースプロキシとしてインストールして構成する必要があります。まず、次のコマンドを使用してNginxパッケージをインストールします。
apt-get install nginx -y
Nginxをインストールしたら、Tomcat用の新しいNginx仮想ホスト構成ファイルを作成する必要があります。次のコマンドを使用して作成できます:
nano /etc/nginx/conf.d/tomcat.conf
次の行を追加します:
server { listen 80; server_name tomcat.example.com; root /opt/tomcat/tomcat/webapps/; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }
ファイルを保存して閉じ、構文エラーがないかNginxを確認します:
nginx -t
次の出力が表示されます。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
次に、Nginxサービスを再起動して、変更を適用します。
systemctl restart nginx
次に、次のコマンドを使用してNginxサービスのステータスを確認します。
systemctl status nginx
次の出力が表示されます。
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-04-14 05:57:03 UTC; 1min 38s ago Docs: man:nginx(8) Process: 6852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6853 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6854 (nginx) Tasks: 3 (limit: 4701) Memory: 4.0M CGroup: /system.slice/nginx.service ??6854 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??6855 nginx: worker process ??6856 nginx: worker process Apr 14 05:57:03 debian systemd[1]: Starting A high performance web server and a reverse proxy server... Apr 14 05:57:03 debian systemd[1]: Started A high performance web server and a reverse proxy server.
この時点で、NginxはTomcatにアクセスするように構成されています。これで、次のステップに進むことができます。
TomcatWebUIにアクセス
次に、Webブラウザーを開き、URL http://tomcat.example.comを使用してTomcatWebUIにアクセスします。 。次のページが表示されます:
マネージャーをクリックします アプリ 、次のページが表示されます:
Manager App管理者のユーザー名とパスワードを入力し、サインインをクリックします ボタン。次のページが表示されます:
ホストマネージャーをクリックすることもできます 以下に示すように、ホストマネージャーアプリにアクセスするには:
おめでとう!これで、Debian 10にリバースプロキシとしてNginxを使用してTomcatが正常にインストールされました。これで、Tomcatを使用してJavaアプリケーションを簡単にデプロイできます。ご不明な点がございましたら、お気軽にお問い合わせください。