So installieren Sie Apache Tomcat 9 mit Nginx Proxy unter Debian 10

Tomcat ist ein freier, quelloffener und leichtgewichtiger Anwendungsserver, der für die Bereitstellung von Java-basierten Anwendungen verwendet wird. Er kann als eigenständiger Server verwendet oder mit anderen Servern wie Apache und Nginx kombiniert werden. Er bietet die erweiterte Funktionalität, um mit Java-Servlets zu interagieren und implementiert außerdem mehrere technische Spezifikationen der Java-Plattform. Derzeit ist Tomcat einer der am weitesten verbreiteten Applikationsserver für Java.

In diesem Tutorial zeige ich Ihnen, wie Sie Tomcat 9 mit Nginx auf Debian 10 installieren.

Voraussetzungen

  • Ein Server, auf dem Debian 10 läuft.
  • Ein gültiger Domain-Name, der auf die IP Ihres Servers zeigt.
  • Ein root-Passwort ist auf Ihrem Server konfiguriert.

Erste Schritte

Bevor Sie beginnen, ist es eine gute Idee, Ihren APT-Cache auf die neueste Version zu aktualisieren. Sie können ihn aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Sobald Ihr Systempaket-Cache auf dem neuesten Stand ist, können Sie mit dem nächsten Schritt fortfahren.

Java installieren

Tomcat ist eine javabasierte Anwendung, daher muss Java auf Ihrem Server installiert sein. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

apt-get install default-jdk -y

Sobald Java installiert ist, können Sie die Java-Version mit dem folgenden Befehl überprüfen:

java --version

Sie sollten die folgende Ausgabe erhalten:

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)

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Tomcat installieren

Zunächst müssen Sie einen eigenen Benutzer für den Tomcat-Server anlegen. Sie können ihn mit dem folgenden Befehl erstellen:

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

Als nächstes laden Sie die neueste Version von Tomcat mit dem folgenden Befehl herunter:

wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf apache-tomcat-9.0.45.tar.gz

Verschieben Sie anschließend das extrahierte Verzeichnis mit dem folgenden Befehl in das Verzeichnis /opt:

mv apache-tomcat-9.0.45 /opt/tomcat/tomcat

Legen Sie dann mit dem folgenden Befehl die richtigen Berechtigungen und Eigentümer fest:

chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat

Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Erstellen einer Systemd-Dienstdatei für Tomcat

Als nächstes müssen Sie eine systemd-Dienstdatei erstellen, um den Tomcat-Dienst zu verwalten. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/tomcat.service

Fügen Sie die folgenden Zeilen ein:

[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

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie anschließend den Tomcat-Dienst und aktivieren Sie, dass er beim Neustart des Systems gestartet wird, mit dem folgenden Befehl:

systemctl start tomcat
systemctl enable tomcat

Sie können den Status von Tomcat auch mit dem folgenden Befehl überprüfen:

systemctl status tomcat

Sie sollten die folgende Ausgabe erhalten:

? 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.

Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren der Tomcat-Web-Oberfläche

Als nächstes müssen Sie einen Benutzer für den Zugriff auf die Tomcat-Web-Oberfläche definieren. Sie können ihn über die Datei tomcat-users.xml definieren:

nano /opt/tomcat/tomcat/conf/tomcat-users.xml

Suchen Sie den Abschnitt und fügen Sie die folgenden Zeilen hinzu oder ändern Sie sie:

  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <user username="tomcatadmin" password="password" roles="admin-gui,manager-gui"/>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Standardmäßig ist das Tomcat-Webinterface so konfiguriert, dass nur vom localhost aus zugegriffen werden kann. Sie müssen sie also für den externen Zugriff konfigurieren.

Bearbeiten Sie für die Manager-App die folgende Zeile:

nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml

Bearbeiten Sie für die Host-Manager-App die folgende Datei:

nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml

Entfernen Sie die folgende Zeile:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Speichern und schließen Sie die Datei und starten Sie den Tomcat-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart tomcat

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Nginx für Tomcat konfigurieren

Als nächstes müssen Sie Nginx als Reverse-Proxy für Tomcat installieren und konfigurieren. Installieren Sie zunächst das Nginx-Paket mit dem folgenden Befehl:

apt-get install nginx -y

Nach der Installation von Nginx müssen Sie eine neue Konfigurationsdatei für den virtuellen Nginx-Host für Tomcat erstellen. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/nginx/conf.d/tomcat.conf

Fügen Sie die folgenden Zeilen ein:

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/;
  }
}

Speichern und schließen Sie die Datei und überprüfen Sie dann den Nginx auf etwaige Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Überprüfen Sie anschließend den Status des Nginx-Dienstes mit dem folgenden Befehl:

systemctl status nginx

Sie sollten die folgende Ausgabe sehen:

? 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.

An diesem Punkt ist Nginx für den Zugriff auf den Tomcat konfiguriert. Sie können nun mit dem nächsten Schritt fortfahren.

Zugriff auf die Tomcat-Web-Benutzeroberfläche

Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://tomcat.example.com auf die Tomcat-Web-UI zu. Sie sollten die folgende Seite sehen:

Apache Tomcat

Klicken Sie auf die Manager-App, Sie sollten die folgende Seite sehen:

Tomcat-Anmeldung

Geben Sie Ihren Manager-App-Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Sign In. Sie sollten die folgende Seite sehen:

Tomcat Dashboard

Sie können auch auf den Host Manager klicken, um auf die Host Manager App zuzugreifen, wie unten gezeigt:

Virtueller Host-Manager

Fazit

Herzlichen Glückwunsch! Sie haben Tomcat mit Nginx als Reverse-Proxy unter Debian 10 erfolgreich installiert. Sie können nun Ihre Java-Anwendung einfach mit Tomcat bereitstellen. Wenn Sie Fragen haben, können Sie sich gerne an mich wenden.

Das könnte dich auch interessieren …