Apache Tomcat ist eine Open-Source-Implementierung der Technologien Java Servlet, JavaServer Pages, Java Expression Language und Java WebSocket. Es ist heute eine der am weitesten verbreiteten Anwendungen und Webserver der Welt. Tomcat ist einfach zu bedienen und verfügt über ein robustes Ökosystem von Add-Ons.
Dieses Tutorial zeigt, wie man Tomcat 8.5 auf Ubuntu 18.04 installiert. Dieselben Anweisungen gelten für Ubuntu 16.04 und alle Ubuntu-basierten Distributionen, einschließlich Linux Mint und Elementary OS.
Voraussetzungen #
Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.
Installieren Sie OpenJDK #
OpenJDK, die Open-Source-Implementierung der Java-Plattform, ist die standardmäßige Java-Entwicklung und -Laufzeit in Ubuntu 18.04.
Die Installation des OpenJDK-Pakets ist ziemlich einfach:
sudo apt install default-jdk
Tomcat-Benutzer # erstellen
Wir erstellen einen neuen Systembenutzer und eine neue Gruppe mit dem Home-Verzeichnis /opt/tomcat
die den Tomcat-Dienst ausführt:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcat herunterladen #
Wir werden wget
verwenden und unzip
um das Tomcat-Archiv herunterzuladen und zu extrahieren. Wenn Sie unzip
nicht haben und wget
auf Ihrem System installiert installieren Sie die Pakete mit:
sudo apt install unzip wget
Laden Sie die neueste Version von Tomcat 8.5.x von der Tomcat-Downloadseite herunter. Zum Zeitpunkt des Schreibens ist die neueste Version 8.5.37. Bevor Sie mit dem nächsten Schritt fortfahren, sollten Sie auf der Download-Seite nach einer neuen Version suchen.
Wechseln Sie zu /tmp
Verzeichnis und laden Sie die ZIP-Datei mit dem folgenden wget-Befehl herunter:
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip
Sobald der Download abgeschlossen ist, entpacken Sie die Datei und verschieben Sie sie nach /opt/tomcat
Verzeichnis:
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
Um mehr Kontrolle über Versionen und Updates zu haben, erstellen wir einen symbolischen Linklatest
die auf das Tomcat-Installationsverzeichnis zeigen:
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
Wenn Sie später Ihre Tomcat-Installation aktualisieren möchten, können Sie einfach die neuere Version entpacken und den Symlink so ändern, dass er auf die neueste Version zeigt.
Der Tomcat-Benutzer, den wir zuvor eingerichtet haben, muss Zugriff auf das Tomcat-Verzeichnis haben, also ändern wir den Verzeichnisbesitz in Benutzer und Gruppe Tomcat:
sudo chown -R tomcat: /opt/tomcat
Erstellen Sie die Skripte in bin
Verzeichnis ausführbar, indem Sie den folgenden chmod
ausführen Befehl:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Erstellen Sie eine systemd-Unit-Datei #
Um Tomcat als Dienst auszuführen, erstellen wir einen neuen tomcat.service
Unit-Datei in /etc/systemd/system/
Verzeichnis mit folgendem Inhalt:
[Unit]
Description=Tomcat 8.5 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/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
Benachrichtigen Sie systemd, dass wir eine neue Unit-Datei erstellt haben, und starten Sie den Tomcat-Dienst, indem Sie Folgendes ausführen:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Sie können den Dienststatus mit dem folgenden Befehl überprüfen:
sudo systemctl status tomcat
● tomcat.service - Tomcat 8.5 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-05 11:04:40 UTC; 5s ago
Process: 13478 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 13499 (java)
Tasks: 45 (limit: 507)
CGroup: /system.slice/tomcat.service
└─13499 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.
und wenn es keine Fehler gibt, können Sie den Tomcat-Dienst so aktivieren, dass er beim Booten automatisch gestartet wird:
sudo systemctl enable tomcat
Passen Sie die Firewall # an
Wenn Ihr Server durch eine Firewall geschützt ist und Sie von außerhalb Ihres lokalen Netzwerks auf die Tomcat-Schnittstelle 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, haben Sie höchstwahrscheinlich einen Load Balancer oder Reverse Proxy, und es ist eine bewährte Methode, den Zugriff auf Port 8080 nur auf Ihr internes Netzwerk zu beschränken. Konfigurieren Sie die Tomcat-Webverwaltungsschnittstelle #
Nachdem wir Tomcat auf unserem Ubuntu-Server installiert haben, besteht der nächste Schritt darin, einen Benutzer zu erstellen, der Zugriff auf die Webverwaltungsschnittstelle hat.
Tomcat-Benutzer und ihre Rollen sind 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 vim /opt/tomcat/latest/conf/tomcat-users.xml
Um einen neuen Benutzer hinzuzufügen, der auf die Tomcat-Weboberfläche (manager-gui und admin-gui) zugreifen kann, 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 nur der Zugriff vom lokalen Host möglich ist. Wenn Sie von einer Remote-IP oder von überall aus auf die Webschnittstelle zugreifen möchten, was nicht empfohlen wird, da dies ein Sicherheitsrisiko darstellt, können Sie die folgenden Dateien öffnen und nehmen Sie die folgenden Änderungen vor.
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>
Wenn Sie nur von einer bestimmten IP auf die Weboberfläche zugreifen müssen, fügen Sie Ihre öffentliche IP zur Liste hinzu, anstatt die Blöcke zu kommentieren. Nehmen wir an, Ihre öffentliche IP ist 32.32.32.32
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|32.32.32.32" />
</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|32.32.32.32" />
</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 den Tomcat-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart tomcat
Testen Sie die Installation #
Öffnen Sie Ihren Browser und geben Sie Folgendes ein:http://<your_domain_or_IP_address>:8080
Vorausgesetzt, die Installation ist erfolgreich, wird ein Bildschirm ähnlich dem folgenden angezeigt:
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.
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.