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:
Klicken Sie auf die Manager-App, Sie sollten die folgende Seite sehen:
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:
Sie können auch auf den Host Manager klicken, um auf die Host Manager App zuzugreifen, wie unten gezeigt:
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.