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 auf Ubuntu 18.04 installiert und konfiguriert. Dieselben Anweisungen gelten für Ubuntu 16.04 und alle Ubuntu-basierten Distributionen, einschließlich Linux Mint und Elementary OS.
Voraussetzungen #
Um Pakete auf Ihrem Ubuntu-System installieren zu können, müssen Sie als Benutzer mit sudo-Berechtigungen angemeldet sein.
Schritt 1:Installieren Sie OpenJDK #
Für Tomcat muss Java installiert sein. Wir installieren OpenJDK, die standardmäßige Java-Entwicklung und -Laufzeit in Ubuntu 18.04.
Die Installation von Java ist ziemlich einfach. Beginnen Sie mit der Aktualisierung des Paketindex:
sudo apt update
Installieren Sie das OpenJDK-Paket, indem Sie Folgendes ausführen:
sudo apt install default-jdk
Schritt 2:Tomcat-Benutzer # erstellen
Aus Sicherheitsgründen sollte Tomcat nicht unter dem Root-Benutzer ausgeführt werden. Wir erstellen einen neuen Systembenutzer und eine neue Gruppe mit dem Home-Verzeichnis /opt/tomcat
das den Tomcat-Dienst ausführt:
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
Schritt 3:Installieren Sie Tomcat #
Wir werden die neueste Binärversion von Tomcat 9 von der Tomcat 9-Downloadseite herunterladen.
Zum Zeitpunkt des Schreibens ist die neueste Version 9.0.27
. Bevor Sie mit dem nächsten Schritt fortfahren, sollten Sie auf der Download-Seite nach einer neuen Version suchen. Wenn es eine neue Version gibt, kopieren Sie den Link zum Core tar.gz
Datei, die sich im Abschnitt „Binary Distributions“ befindet.
Laden Sie zunächst das Tomcat-Archiv in /tmp
herunter Verzeichnis mit dem folgenden wget
Befehl:
wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp
Extrahieren Sie nach Abschluss des Downloads das Tomcat-Archiv und verschieben Sie es nach /opt/tomcat
Verzeichnis:
sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat
Um mehr Kontrolle über Tomcat-Versionen und -Updates zu haben, erstellen Sie einen symbolischen Link namens latest
das zeigt auf das Installationsverzeichnis von Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Wenn Sie Ihre Tomcat-Instanz später aktualisieren möchten, entpacken Sie einfach die neuere Version und ändern Sie den Symlink so, dass er auf die neueste Version verweist.
Wie wir im vorherigen Abschnitt erwähnt haben, läuft Tomcat unter tomcat
Benutzer. Dieser Benutzer muss Zugriff auf das Tomcat-Installationsverzeichnis haben.
Der folgende Befehl ändert den Besitz des Verzeichnisses auf Benutzer und Gruppe Tomcat:
sudo chown -RH tomcat: /opt/tomcat/latest
Die Skripte in bin
Verzeichnis muss ausführbares Flag haben:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Schritt 4:Erstellen Sie eine systemd-Unit-Datei #
Um Tomcat als Dienst auszuführen, müssen Sie eine neue Unit-Datei erstellen.
Öffnen Sie Ihren Texteditor und erstellen Sie eine Datei namens tomcat.service
in /etc/systemd/system/
:
sudo nano /etc/systemd/system/tomcat.service
Fügen Sie die folgende Konfiguration 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/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
Ändern Sie den Wert von JAVA_HOME
wenn der Pfad zu Ihrer Java-Installation anders ist. Speichern und schließen Sie die Datei und benachrichtigen Sie systemd, dass wir eine neue Unit-Datei erstellt haben:
sudo systemctl daemon-reload
Starten Sie den Tomcat-Dienst, indem Sie Folgendes ausführen:
sudo systemctl start tomcat
Überprüfen Sie den Dienststatus mit dem folgenden Befehl:
sudo systemctl status tomcat
* tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 15:45:28 PDT; 20s ago
Process: 1582 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1604 (java)
Tasks: 47 (limit: 2319)
CGroup: /system.slice/tomcat.service
Wenn keine Fehler vorliegen, aktivieren Sie den automatischen Start des Tomcat-Dienstes beim Booten:
sudo systemctl enable tomcat
Schritt 5:Passen Sie die Firewall # an
Wenn Ihr Server durch eine Firewall geschützt ist und Sie von außerhalb Ihres lokalen Netzwerks auf Tomcat zugreifen möchten, müssen Sie Port 8080
öffnen .
Um Datenverkehr auf Port 8080
zuzulassen Geben Sie den folgenden Befehl ein:
sudo ufw allow 8080/tcp
Wenn Sie eine Tomcat-Anwendung in einer Produktionsumgebung ausführen, verfügen Sie normalerweise über einen Load Balancer oder Reverse Proxy. Es hat sich bewährt, den Zugriff auf Port 8080
zu beschränken nur in Ihr internes Netzwerk. Schritt 6:Tomcat Web Management Interface konfigurieren #
Nachdem Tomcat nun installiert ist und ausgeführt wird, besteht der nächste Schritt darin, einen Benutzer mit Zugriff auf die Webverwaltungsschnittstelle zu erstellen.
Tomcat-Benutzer und -Rollen werden in der tomcat-users.xml
definiert Datei. Diese Datei ist eine Vorlage mit Kommentaren und Beispielen, die beschreiben, wie Benutzer oder Rollen konfiguriert werden.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Um einen neuen Benutzer mit Zugriff auf die Tomcat-Weboberfläche (manager-gui und admin-gui) hinzuzufügen, müssen wir den Benutzer in der tomcat-users.xml
definieren Datei, wie unten gezeigt. Stellen Sie sicher, dass Sie den Benutzernamen und das Passwort in etwas Sichereres ändern:
<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 auf die Manager- und Host-Manager-Apps nur vom lokalen Host beschränkt wird.
Wenn Sie von einer Remote-IP aus auf die Weboberfläche zugreifen möchten, müssen Sie diese Einschränkungen entfernen. Dies kann verschiedene Auswirkungen auf die Sicherheit haben und wird für Produktionssysteme nicht empfohlen.
Um den Zugriff auf die Weboberfläche von überall aus zu ermöglichen, öffnen Sie die folgenden beiden Dateien und kommentieren oder entfernen Sie die gelb markierten Zeilen.
Öffnen Sie für die Manager-App die folgende Datei:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Öffnen Sie für die Host Manager-App die folgende Datei:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
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>
Eine weitere Option besteht darin, den Zugriff auf die Manager- und Host-Manager-Apps nur von einer bestimmten IP aus zuzulassen. Anstatt die Blöcke zu kommentieren, kannst du einfach deine IP-Adresse zur Liste hinzufügen.
Zum Beispiel, wenn Ihre öffentliche IP-Adresse 45.45.45.45
ist Sie würden die folgende Änderung vornehmen:
<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|45.45.45.45" />
</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.
Denken Sie daran, den Tomcat-Dienst jedes Mal neu zu starten, wenn Sie Tomcat-Konfigurationsdateien bearbeiten, damit die Änderungen wirksam werden:
sudo systemctl restart tomcat
Schritt 6:Testen Sie die Tomcat-Installation #
Öffnen Sie Ihren Browser und geben Sie Folgendes ein:http://<your_domain_or_IP_address>:8080
Vorausgesetzt, die Installation ist erfolgreich, sollte ein Bildschirm ähnlich dem folgenden erscheinen:
Das Dashboard des Tomcat-Webanwendungsmanagers ist unter http://<your_domain_or_IP_address>:8080/manager/html
verfügbar . Von hier aus können Sie Ihre Anwendungen bereitstellen, die Bereitstellung aufheben, starten, stoppen und neu laden.
Sie können sich mit dem Benutzer anmelden, den Sie in Step 6
erstellt haben .
Das Tomcat Virtual Host Manager-Dashboard ist unter http://<your_domain_or_IP_address>:8080/host-manager/html
verfügbar . Von hier aus können Sie virtuelle Tomcat-Hosts erstellen, löschen und verwalten.