Wie man Apache Tomcat 10 mit Nginx Reverse Proxy unter Debian 12 installiert
Apache Tomcat oder „Tomcat“ ist ein freier und quelloffener Java-Servlet-Container für Java-Code und -Anwendungen. Er bietet eine „reine Java“-HTTP-Serverumgebung, in der Java-Code ausgeführt werden kann. Tomcat implementiert auch JavaServer Pages, Java Expression Language und WebSocket-Technologien.
In dieser Anleitung zeigen wir dir, wie du Apache Tomcat 10 auf dem Debian 12 Server installierst. Außerdem erfährst du, wie du Nginx als Reverse Proxy für Apache Tomcat einrichtest.
Voraussetzungen
Um loszulegen, stelle sicher, dass du Folgendes hast:
- Einen Debian 12 Server.
- Einen Nicht-Root-Benutzer mit Administrator-Rechten.
Installation von Java OpenJDK
Der Apache Tomcat ist hauptsächlich in Java geschrieben. Bevor du ihn installierst, musst du Java auf deinem System installieren. In diesem Beispiel wirst du Java OpenJDK 17 installieren, das standardmäßig im Debian-Repository verfügbar ist.
Bevor du mit der Installation von Java beginnst, aktualisiere dein Debian-Repository mit dem unten stehenden Befehl.
sudo apt update
Installiere nun das Java OpenJDK-Paket auf deinem Debian-Server mit dem folgenden Befehl. Das Paket default-jdk bezieht sich auf Java OpenJDK 17, die LTS-Version von Java.
sudo apt install default-jdk
Gib y ein, um die Installation zu bestätigen.
Nachdem du Java installiert hast, führe den folgenden Befehl aus, um deine Java-Version zu überprüfen. Du wirst sehen, dass Java OpenJDK 17 installiert ist.
java --version
Installation von Apache Tomcat über das Repository
Das aktuelle Debian 12 Repository enthält standardmäßig Apache Tomcat 10. Wenn du Apache Tomcat über die APT installieren musst, ist diese Methode für dich geeignet.
Überprüfe zunächst das Paket tomcat10 mit dem unten stehenden Befehl.
sudo apt info tomcat10
In der folgenden Ausgabe kannst du sehen, dass Apache Tomcat 10 im Hauptdebian-Repository im Abschnitt java verfügbar ist.
Wenn du Tomcat über die APT installieren möchtest, führe den folgenden Befehl auf deinem System aus. Gib y ein, um die Installation zu bestätigen.
sudo apt install tomcat10 tomcat10-common tomcat10-admin tomcat10-user tomcat10-examples
Sobald die Installation abgeschlossen ist, sollte der tomcat10-Dienst laufen. Überprüfe ihn mit dem unten stehenden Befehl.
sudo systemctl is-enabled tomcat10 sudo systemctl status tomcat10
Wenn der tomcat10-Dienst läuft, solltest du die folgende Ausgabe erhalten:
Öffne schließlich deinen Webbrowser und rufe die IP-Adresse des Servers mit dem Standard-Tomcat-Port 8080 http://192.168.5.15:8080/ auf. Wenn die Installation erfolgreich war, solltest du die Standard-Indexseite von Apache Tomcat 10 erhalten.
Tomcat per Binärdatei installieren
Wenn du das neueste Paket von Apache Tomcat installieren möchtest, kannst du es über das Binärpaket installieren. In diesem Abschnitt erfährst du, wie du das auf deinem Debian-Server machst.
Erstelle zunächst einen neuen Systembenutzer tomcat mit dem unten stehenden Befehl.
sudo useradd -m -u -d /opt/tomcat -s /usr/sbin/nologin tomcat
Besuche die Apache Tomcat Downloadseite und überprüfe die neueste Version von Tomcat. Führe dann den unten stehenden Befehl aus, um die neueste Apache Tomcat-Version herunterzuladen.
export VERSION=10.1.19 wget https://www-eu.apache.org/dist/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz
Nachdem du sie heruntergeladen hast, führe den folgenden Befehl aus, um ein neues Apache Tomcat-Installationsverzeichnis /opt/tomcat zu erstellen und entpacke das Tomcat-Binärpaket in dieses Verzeichnis.
mkdir -p /opt/tomcat sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat
Erstelle nun einen neuen Symlink vom entpackten Tomcat-Verzeichnis zu /opt/tomcat/latest. Dann änderst du die Eigentümerschaft des Verzeichnisses /opt/tomcat auf den Benutzer tomcat.
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest sudo chown -R tomcat:tomcat /opt/tomcat
Als nächstes erstellst du mit dem Editor nano eine neue systemd-Dienstdatei /etc/systemd/system/tomcat.service.
sudo nano /etc/systemd/system/tomcat.service
Füge die unten stehende Konfiguration ein, um die Dienstdatei für den Apache Tomcat einzurichten.
[Unit] Description=Tomcat 10 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 -Djava.awt.headless=true" 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
Speichere die Datei und beende den Editor.
Führe den unten stehenden Befehl aus, um den systemd Manager neu zu laden, und starte und aktiviere den Tomcat-Dienst.
sudo systemctl daemon-reload
sudo systemctl start tomcat sudo systemctl enable tomcat
Sobald er gestartet ist, überprüfe den Tomcat-Dienst mit dem unten stehenden Befehl. Vergewissere dich, dass dein Tomcat-Dienst wie folgt läuft.
sudo systemctl status tomcat
Öffne schließlich deinen Webbrowser und rufe http://192.168.5.15:8080/ auf. Wenn alles gut läuft, solltest du die Apache Tomcat-Indexseite sehen.
Tomcat Administrator erstellen
Jetzt hast du Apache Tomcat auf deinem Debian-Server installiert. Im nächsten Schritt richtest du die Authentifizierung für Apache Tomcat ein und aktivierst den Tomcat Manager und den Host-Manager.
Um zu beginnen, bearbeitest du die Tomcat-Konfigurationsdatei /etc/tomcat10/tomcat-users.xml mit dem folgenden nano-Editor.
sudo nano /etc/tomcat10/tomcat-users.xml
Füge die folgenden Zeilen zwischen dem Abschnitt„tomcat-users“ ein. Achte darauf, dass du den Standardbenutzernamen admin und das Passwort tomcatadmin durch deine Anmeldedaten änderst.
<tomcat-users> <!-- user: admin pass: tomcatadmin --> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="admin" password="tomcatadmin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/> </tomcat-users>
Speichere und beende die Datei.
Öffne nun die Konfigurationsdatei für den Tomcat-Manager und den Host-Manager mit dem nano-Editor.
sudo nano /usr/share/tomcat10-admin/host-manager/META-INF/context.xml sudo nano /usr/share/tomcat10-admin/manager/META-INF/context.xml
Kommentiere die Zeile ‚<Valve className=“org.apache.catalina.valves.RemoteAddrValve“‚, um den Zugriff auf den Tomcat-Manager und den Host-Manager zu ermöglichen. Wenn du ‚<!– … –>‘ hinzufügst, wird die Konfiguration deaktiviert oder kommentiert.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Speichere die Datei und beende den Editor.
Starte dann den Tomcat-Dienst mit dem unten stehenden Befehl neu, um die neue Tomcat-Konfiguration anzuwenden.
sudo systemctl restart tomcat
Rufe schließlich http://192.168.5.15:8080/manager auf, um auf den Tomcat-Manager zuzugreifen, und http://192.168.5.15:8080/host-manager, um auf den Tomcat-Hostmanager zuzugreifen. Gib deinen Admin-Benutzer und dein Passwort ein, wenn du dazu aufgefordert wirst, und klicke auf Anmelden.
Wenn du erfolgreich warst, solltest du das Dashboard des Apache Tomcat-Managers sehen.
Der Tomcat-Host-Manager sieht folgendermaßen aus:
Nginx als Reverse Proxy konfigurieren
In dieser Anleitung wirst du Apache Tomcat mit Nginx als Reverse Proxy betreiben. In diesem Abschnitt installierst du Nginx und richtest eine Serverblockkonfiguration als Reverse Proxy für Tomcat ein, der auf Port 8080 läuft.
Führe den folgenden Befehl aus, um Nginx auf deinem System zu installieren. Gib y ein, um die Installation zu bestätigen.
sudo apt install nginx
Sobald die Installation abgeschlossen ist, erstelle mit dem Editor nano eine neue Serverblockkonfiguration /etc/nginx/sites-available/tomcat.conf.
sudo nano /etc/nginx/sites-available/tomcat.conf
Füge die folgende Konfiguration hinzu, um Nginx als Reverse Proxy für Apache Tomcat einzurichten.
server { listen 80; server_name tomcat.hwdomain.io; access_log /var/log/nginx/tomcat-access.log; error_log /var/log/nginx/tomcat-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 beende die Datei, wenn du fertig bist.
Aktiviere nun die Serverblock-Konfiguration und überprüfe die Nginx-Syntax. Wenn alles gut läuft, solltest du eine Ausgabe wie„Test ist erfolgreich – Syntax ist ok“ erhalten.
sudo ln -s /etc/nginx/sites-available/tomcat.conf /etc/nginx/sites-enabled/ sudo nginx -t
Starte als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen und um sicherzustellen, dass der Dienst läuft.
sudo systemctl restart nginx sudo systemctl status nginx
Wenn Nginx läuft, solltest du die folgende Ausgabe erhalten:
Gehe schließlich zurück zu deinem Webbrowser und besuche http://tomcat.hwdomain.io/. Du solltest die Standard-Indexseite von Apache Tomcat sehen.
Fazit
Herzlichen Glückwunsch! Du hast nun Apache Tomcat 10 auf einem Debian 12 Server installiert. Du hast zwei Methoden zur Installation von Apache Tomcat kennengelernt: über das APT-Repository und manuell über ein Binärpaket. Schließlich hast du auch gelernt, wie du Nginx als Reverse Proxy für deine Tomcat-Installation einrichtest.