Apache Tomcat ist eine Open-Source-Implementierung der Technologien Java Servlet, JavaServer Pages, Java Expression Language und Java WebSocket. Es ist heute einer der am weitesten verbreiteten Anwendungs- und Webserver der Welt. Tomcat ist einfach zu bedienen und verfügt über ein robustes Ökosystem von Add-Ons.
Dieses Tutorial erklärt, wie man Tomcat 9.0 auf CentOS 8 installiert.
Installieren von Java #
Tomcat 9 erfordert Java SE 8 oder höher. Wir werden OpenJDK 11 installieren, die Open-Source-Implementierung der Java-Plattform.
Führen Sie den folgenden Befehl als Root oder Benutzer mit sudo-Berechtigungen aus, um Java zu installieren:
sudo dnf install java-11-openjdk-devel
Überprüfen Sie nach Abschluss der Installation die Java-Version:
java -version
Die Ausgabe sollte in etwa so aussehen:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Erstellen eines Systembenutzers #
Das Ausführen von Tomcat unter dem Root-Benutzer ist ein Sicherheitsrisiko. Wir erstellen einen neuen Systembenutzer und eine neue Gruppe mit dem Home-Verzeichnis /opt/tomcat
das wird den Tomcat-Dienst ausführen. Geben Sie dazu folgenden Befehl ein:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcat wird heruntergeladen #
Die Tomcat-Binärdistribution kann von der Tomcat-Downloadseite heruntergeladen werden.
Zum Zeitpunkt des Schreibens ist die neueste Tomcat-Version 9.0.30
. Bevor Sie mit dem nächsten Schritt fortfahren, prüfen Sie auf der Tomcat 9-Downloadseite, ob eine neuere Version verfügbar ist.
Laden Sie die Tomcat-Zip-Datei mit wget
herunter zu /tmp
Verzeichnis:
VERSION=9.0.30
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
Extrahieren Sie nach Abschluss des Downloads die tar-Datei in den Ordner /opt/tomcat
Verzeichnis::
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat wird regelmäßig aktualisiert. Um mehr Kontrolle über Versionen und Updates zu haben, erstellen wir einen symbolischen Link namens latest
, das auf das Installationsverzeichnis von Tomcat zeigt:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Der zuvor erstellte Systembenutzer muss Zugriff auf das Tomcat-Installationsverzeichnis haben. Ändern Sie den Besitz des Verzeichnisses auf den Benutzer und die Gruppe Tomcat:
sudo chown -R tomcat: /opt/tomcat
Erstellen Sie die Shell-Skripte im bin
Verzeichnis ausführbar:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Diese Skripte werden verwendet, um Tomcat zu starten und zu stoppen.
Erstellen einer Systemd-Unit-Datei #
Anstatt den Tomcat-Server manuell zu starten und zu stoppen, richten wir ihn so ein, dass er als Dienst ausgeführt wird. Öffnen Sie Ihren Texteditor und erstellen Sie einen tomcat.service
Unit-Datei in /etc/systemd/system/
Verzeichnis:
sudo nano /etc/systemd/system/tomcat.service
Fügen Sie den folgenden Inhalt ein:
/etc/systemd/system/tomcat.service[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
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
Speichern und schließen Sie die Datei.
Benachrichtigen Sie systemd, dass eine neue Dienstdatei existiert, indem Sie Folgendes eingeben:
sudo systemctl daemon-reload
Aktivieren und starten Sie den Tomcat-Dienst:
sudo systemctl enable --now tomcat
Prüfen Sie den Dienststatus:
sudo systemctl status tomcat
Die Ausgabe sollte zeigen, dass der Tomcat-Server aktiviert ist und ausgeführt wird:
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 20:38:07 UTC; 30s ago
Process: 3957 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
...
Konfiguriere Firewall #
Wenn Ihr Server durch eine Firewall geschützt ist und Sie von außerhalb des lokalen Netzwerks auf die Tomcat-Schnittstelle zugreifen möchten, müssen Sie den Port 8080
öffnen .
Verwenden Sie die folgenden Befehle, um den erforderlichen Port zu öffnen:
Wenn Sie Tomcat in einer Produktionsumgebung ausführen, sollten Sie in der Regel einen Load Balancer oder Reverse Proxy verwenden. Es hat sich bewährt, den Zugriff auf Portsudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
8080
zuzulassen nur aus Ihrem internen Netzwerk. Konfigurieren der Tomcat-Webverwaltungsschnittstelle #
An diesem Punkt sollten Sie mit einem Webbrowser auf Port 8080
auf Tomcat zugreifen können . Auf die Webverwaltungsschnittstelle kann nicht zugegriffen werden, da wir noch keinen Benutzer erstellt haben.
Tomcat-Benutzer und -Rollen werden in der tomcat-users.xml
definiert Datei.
Wenn Sie die Datei öffnen, werden Sie feststellen, dass sie mit Kommentaren und Beispielen gefüllt ist, die beschreiben, wie die Datei konfiguriert wird.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Um einen neuen Benutzer zu erstellen, der auf die Tomcat-Weboberfläche (manager-gui und admin-gui) zugreifen kann, bearbeiten Sie die Datei wie unten gezeigt. Stellen Sie sicher, dass Sie den Benutzernamen und das Passwort in etwas Sichereres ändern:
/opt/tomcat/latest/conf/tomcat-users.xml<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Standardmäßig ist die Tomcat-Webverwaltungsschnittstelle so konfiguriert, dass der Zugriff nur von localhost zugelassen wird.
Wenn Sie von überall auf die Weboberfläche zugreifen müssen, öffnen Sie die folgenden Dateien und kommentieren oder entfernen Sie die gelb markierten Zeilen:
/opt/tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Bitte beachten Sie, dass das Zulassen des Zugriffs von überall aus nicht empfohlen wird, da dies ein Sicherheitsrisiko darstellt.
Wenn Sie nur von einer bestimmten IP auf das Webinterface zugreifen möchten, fügen Sie Ihre öffentliche IP zur Liste hinzu, anstatt die Blöcke zu kommentieren.
Nehmen wir an, Ihre öffentliche IP ist 41.41.41.41
und Sie möchten den Zugriff nur von dieser IP zulassen:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>
Die Liste der zulässigen IP-Adressen ist eine Liste, die durch einen vertikalen Strich |
getrennt ist . Sie können einzelne IP-Adressen hinzufügen oder reguläre Ausdrücke verwenden.
Starten Sie anschließend den Tomcat-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart tomcat
Testinstallation #
Öffnen Sie Ihren Browser und geben Sie Folgendes ein:http://<your_domain_or_IP_address>:8080
Nach erfolgreicher Installation sollte ein Bildschirm ähnlich dem folgenden erscheinen:
Mit dem Dashboard des Tomcat-Webanwendungsmanagers können Sie Ihre Anwendungen bereitstellen, die Bereitstellung aufheben, starten, stoppen und neu laden. Sie ist verfügbar unter:http://<your_domain_or_IP_address>:8080/manager/html
.
Mit dem Tomcat Virtual Host Manager-Dashboard können Sie virtuelle Tomcat-Hosts erstellen, löschen und verwalten. Sie ist verfügbar unter:http://<your_domain_or_IP_address>:8080/host-manager/html
.