Wie man Apache Tomcat 10 auf Debian 10 installiert

Apache Tomcat ist ein Open-Source und der beliebteste Webapplikationsserver, um Java-basierte Anwendungen zu hosten. Er kommt mit Java Servlet, JavaServer Pages (JSP), Java EL und bietet eine Umgebung, um Java Codes auszuführen. Tomcat bietet ein reichhaltiges Set an Features, wie z.B. leichtgewichtig, hochflexibel, gut dokumentiert, bietet ein zusätzliches Maß an Sicherheit, ausgereift und mehr.

In diesem Tutorial werden wir erklären, wie man Apache Tomcat 10 auf einem Debian 10 Server installiert.

Voraussetzungen

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

Erste Schritte

Bevor du beginnst, aktualisiere deine Systempakete auf die neueste Version mit dem folgenden Befehl:

apt-get update -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Java installieren

Apache Tomcat ist eine Java-basierte Anwendung. Daher musst du Java auf deinem Server installieren. Du kannst Java mit dem folgenden Befehl installieren:

apt-get install default-jdk -y

Nach der Installation überprüfst du die Java-Version mit dem folgenden Befehl:

java --version

Die folgende Ausgabe zeigt dir die Java-Version, die auf deinem Server installiert ist.

openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Apache Tomcat installieren

Zum Zeitpunkt der Erstellung dieses Tutorials ist die letzte verfügbare Version von Apache Tomcat 10.0.7.

Als erstes fügst du mit dem folgenden Befehl den Benutzer hinzu, der Apache Tomcat ausführen soll:

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

Als nächstes lade den Apache Tomcat 10 mit dem folgenden Befehl herunter:

wget https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.7/bin/apache-tomcat-10.0.7.tar.gz

Sobald der Download abgeschlossen ist, extrahiere die heruntergeladene Datei in das Verzeichnis /opt/tomcat mit dem folgenden Befehl:

tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1

Als Nächstes musst du mit folgendem Befehl die Eigentumsrechte für das Verzeichnis /opt/tomcat festlegen:

chown -R tomcat:tomcat /opt/tomcat/

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Tomcat Web Admin Benutzer erstellen

Als nächstes musst du einen Admin-Benutzer erstellen, um auf das Tomcat Admin-Interface zugreifen zu können. Du kannst ihn erstellen, indem du die Datei tomcat-users.xml bearbeitest:

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

Füge die folgenden Zeilen vor der letzten Zeile ein:

<role rolename="manager-gui" />
<user username="manager" password="pasword" roles="manager-gui" />

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

Speichere und schließe die Datei, nachdem du fertig bist. Du kannst nun mit dem nächsten Schritt fortfahren.

Fernzugriff auf Tomcat zulassen

Standardmäßig ist Tomcat so konfiguriert, dass er nur vom lokalen System aus zugreifen kann. Daher musst du Tomcat so konfigurieren, dass er vom entfernten System aus zugegriffen werden kann.

Als erstes musst du die Datei context.xml bearbeiten, um den Fernzugriff auf die Tomcat Manager Anwendung zu erlauben:

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

Entferne oder kommentiere die folgenden Zeilen aus:

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

Speichere und schließe die Datei und bearbeite dann die Datei context.xml, um den Fernzugriff auf die Tomcat-Hostmanager-Anwendung zu erlauben:

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

Entferne die folgenden Zeilen:

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

Speichere und schließe die Datei, wenn du fertig bist. Du kannst nun mit dem nächsten Schritt fortfahren.

Erstelle eine Systemd Unit Datei für Tomcat

Als nächstes musst du eine systemd unit Datei erstellen, um den Tomcat Dienst zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/tomcat.service

Füge die folgenden Zeilen ein:

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-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

Speichere und schließe die Datei und lade dann den systemd-Daemon neu, um die Änderungen zu übernehmen:

systemctl daemon-reload

Starte als Nächstes den Tomcat-Dienst und aktiviere ihn mit dem folgenden Befehl, damit er beim Neustart des Systems startet:

systemctl start tomcat
systemctl enable tomcat

Du kannst nun den Status des Tomcat-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status tomcat

Du solltest die folgende Ausgabe erhalten:

? tomcat.service - Tomcat
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-01 04:58:39 UTC; 15s ago
  Process: 5706 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5713 (java)
    Tasks: 29 (limit: 2359)
   Memory: 154.7M
   CGroup: /system.slice/tomcat.service
           ??5713 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.ut

Jul 01 04:58:39 tomcat systemd[1]: Starting Tomcat...
Jul 01 04:58:39 tomcat startup.sh[5706]: Tomcat started.
Jul 01 04:58:39 tomcat systemd[1]: Started Tomcat.

Zu diesem Zeitpunkt ist Tomcat gestartet und lauscht auf Port 8080. Du kannst es mit dem folgenden Befehl überprüfen:

ss -antpl | grep 8080

Du solltest die folgende Ausgabe erhalten:

LISTEN   0        100                          *:8080                  *:*       users:(("java",pid=5713,fd=43))

Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx für Tomcat konfigurieren

Als nächstes empfiehlt es sich, Nginx als Reverse Proxy zu verwenden, um auf die Tomcat Anwendung zuzugreifen.

Als erstes installierst du den Nginx Webserver mit dem folgenden Befehl:

apt-get install nginx -y

Sobald Nginx installiert ist, erstelle eine neue Nginx Virtual Host Konfigurationsdatei:

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

Füge die folgenden Zeilen hinzu:

server {
  listen 80;

  server_name    tomcat.example.com;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

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

Speichere und schließe die Datei, wenn du fertig bist, dann überprüfe den Nginx auf Syntaxfehler mit dem folgenden Befehl:

nginx -t

Du solltest die folgende Ausgabe erhalten:

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

Starte als nächstes den Nginx neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Du kannst auch den Status des Nginx-Dienstes mit folgendem Befehl überprüfen:

systemctl status nginx

Wenn alles in Ordnung ist, solltest du 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 Thu 2021-07-01 05:00:32 UTC; 6s ago
     Docs: man:nginx(8)
  Process: 6322 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6323 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6324 (nginx)
    Tasks: 2 (limit: 2359)
   Memory: 2.7M
   CGroup: /system.slice/nginx.service
           ??6324 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6325 nginx: worker process

Jul 01 05:00:32 tomcat systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 01 05:00:32 tomcat systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jul 01 05:00:32 tomcat systemd[1]: Started A high performance web server and a reverse proxy server.

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf die Tomcat Anwendung

Öffne nun deinen Webbrowser und rufe die Tomcat Anwendung über die URL http://tomcat.example.com auf. Du wirst auf die folgende Seite weitergeleitet:

Apache Tomcat

Klicke auf die Manage App. Du solltest die Anmeldeseite der Manager App sehen:

Tomcat Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Sign in Button. Du solltest das Manager App Dashboard auf der folgenden Seite sehen:

Tomcat Web Application Manager

Um auf den Host Manager zuzugreifen, klicke auf den Host Manager auf der Tomcat Startseite. Du solltest die Tomcat Host Manager Anmeldeseite sehen:

Tomcat Host Manager Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Sign in Button. Auf der folgenden Seite solltest du das Tomcat Host Manager Dashboard sehen:

Tomcat Virtual Host Manager

Fazit

Herzlichen Glückwunsch! Du hast Apache Tomcat 10 erfolgreich auf einem Debian 10 Server installiert. Du kannst nun eine Java Anwendung erstellen und diese mit dem Apache Tomcat hosten. Fühle dich frei, mich zu fragen, wenn du irgendwelche Fragen hast.

Das könnte dich auch interessieren …