In diesem Artikel zeigen wir Ihnen, wie Sie Tomcat 10 auf Ubuntu installieren und konfigurieren und wie wir es mit Apache HTTP Server mithilfe des mod_jk-Konnektors integrieren können.
Apache Tomcat ist ein Open-Source-Webserver und Servlet-Container, der zum Bereitstellen und Bereitstellen von Java-Webanwendungen verwendet wird. Die meisten modernen Java-Webframeworks basieren auf Servlets, z. B. JavaServer Faces, Struts, Spring usw.
Apache Tomcat stellt außerdem standardmäßig einen HTTP-Connector auf Port 8080 bereit, d. h. Tomcat kann auch als HTTP-Server verwendet werden. Aber die Leistung von Tomcat ist nicht so gut wie die Leistung eines designierten Webservers wie dem Apache HTTP-Server.
In den meisten Produktionsumgebungen wird Tomcat in Verbindung mit Apache HTTP Server verwendet. Apache HTTP Server verarbeitet statische Inhalte wie HTML, Bilder usw. und leitet die Anforderungen für dynamische Inhalte an Tomcat weiter.
Diese Installations- und Konfigurationsanleitung gilt zu Apache mit Tomcat 10 auf Ubuntu.
1. Installieren Sie Java
Aktualisieren Sie zuerst wie immer Ihre Pakete:
sudo apt update
Sie müssen Java auf Ihrem System installiert haben, um den Tomcat-Server auszuführen. Für Tomcat 10 muss Java SE 8 oder eine höhere Version auf Ihrem System installiert sein. Führen Sie den folgenden Befehl aus und installieren Sie das OpenJDK 11 JDK-Paket:
sudo apt install openjdk-11-jdk
Prüfen Sie die aktuell aktive Java-Version:
java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
2. Tomcat-Systembenutzer erstellen
Ausführen eines Tomcat-Servers unter dem Root Benutzer ist ein Sicherheitsrisiko. Daher empfehlen wir, für den Betrieb des Tomcat-Servers ein separates Benutzerkonto anzulegen.
Der folgende Befehl erstellt einen Benutzer und eine Gruppe mit dem Namen tomcat
auf Ihrem System:
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
3. Installieren und konfigurieren Sie Apache Tomcat 10
Tomcat ist ein plattformunabhängiges Tool, und solange Java installiert ist, ist die Installation ein unkomplizierter Vorgang. Zuerst müssen Sie die gewünschte Version von der offiziellen Website herunterladen und dann auf Ihrem Dateisystem entpacken.
Laden Sie jetzt die neueste Binärversion von Tomcat von der offiziellen Tomcat-Downloadseite herunter.
wget https://apache.mirrors.nublue.co.uk/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz
Extrahieren Sie nach Abschluss des Downloads die TAR-Datei in das Verzeichnis /opt/tomcat
Verzeichnis:
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Legen Sie als Nächstes die richtigen Dateiberechtigungen fest:
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin
Sie sollten einen Benutzer für den Web Application Manager im Tomcat-Server erstellen. Zur Verwendung des Apache Tomcat Web Application Managers muss ein neues Benutzerkonto eingerichtet werden.
Bearbeiten Sie dazu die tomcat-users.xml
Datei in Ihrem Editor:
sudo vim /opt/tomcat/conf/tomcat-users.xml
Fügen Sie den folgenden Code in <tomcat-users>
ein </tomcat-users>
Stichworte. Stellen Sie sicher, dass Sie PASSWORD
ändern für Administrator- und Managerzugriff.
<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="PASSWORD" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="PASSWORD" roles="manager-gui,admin-gui" />
Tomcat bietet eine webbasierte Verwaltungskonsole. Der Standard-Tomcat-Server erlaubt keinen Fernzugriff für die Manager- und Host-Manager-Anwendungen. Sie können jedoch nur von localhost darauf zugreifen.
Befolgen Sie die nachstehenden Anweisungen, um Remote-Verbindungen zu aktivieren.
Erstellen Sie eine Datei conf/Catalina/localhost/manager.xml
:
sudo vim /opt/tomcat/conf/Catalina/localhost/manager.xml
Fügen Sie den folgenden Inhalt hinzu:
<Context privileged="true" antiResourceLocking="false" docBase="{catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
Sie müssen auch eine XML-Datei für die Host-Manager-Webanwendung erstellen, um den Zugriff für Remote-Hosts zu ermöglichen.
sudo vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml
Fügen Sie den folgenden Inhalt hinzu:
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
4. Erstellen Sie einen Tomcat Systemd-Dienst
Wir müssen ein Startskript erstellen, um Tomcat als Systemdienst zu verwalten. Lassen Sie uns einen tomcat.service
erstellen Datei.
sudo vim /etc/systemd/system/tomcat.service
Fügen Sie Folgendes in die Datei ein:
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Laden Sie den systemd-Daemon neu, um die Änderungen zu übernehmen:
sudo systemctl daemon-reload
Stellen Sie Tomcat so ein, dass es beim Booten automatisch startet:
sudo systemctl enable tomcat
5. Installieren Sie den Apache HTTP-Server
Apache ist in den Standard-Software-Repositories von Ubuntu verfügbar. Um es zu installieren, geben Sie den folgenden Befehl ein:
sudo apt install apache2
6. Konfigurieren Sie Tomcat für die Zusammenarbeit mit Apache
Um die Apache Tomcat-Serverprozesse mit dem Apache HTTP-Server zu integrieren, benötigen wir das mod_jk-Modul , das die Schnittstelle zwischen Tomcat und Apache implementiert, kombiniert mit einigen kleinen Schritten, um Apache und Tomcat für unsere Bedürfnisse zu konfigurieren.
6.1 Installieren Sie das mod_jk-Modul
Installation und Konfiguration von mod_jk ist der Schlüssel zur Zusammenarbeit von Webserver und Anwendungsserver. Also installieren wir es:
sudo apt install libapache2-mod-jk
6.2 Konfigurieren von mod_jk mit Apache und Tomcat.
Sie müssen den AJP Connector in Tomcat aktivieren, damit der Apache-Server Anfragen an Tomcat umleiten kann. Dazu haben Sie Tomcats server.xml
bearbeitet Datei.
sudo vim /opt/tomcat/conf/server.xml
Stellen Sie sicher, dass der AJP Connector unten aktiv und nicht auskommentiert ist.
<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" />
Wir müssen den Apache HTTP Server konfigurieren, um das JK-Modul zu laden und zu initialisieren.
Wir müssen die /etc/apache2/workers.properties
erstellen Datei. Diese Datei definiert eine Liste von Tomcat-Workern, an die Apache Anfragen weiterleiten kann.
sudo vim /etc/apache2/workers.properties
und fügen Sie Folgendes in die Datei ein:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Verweisen Sie als Nächstes auf diese Datei in der primären Apache-Konfigurationsdatei apache2.conf
:
sudo vim /etc/apache2/apache2.conf
Wir fügen diese Zeilen am Ende hinzu:
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[ %a %b %d %H:%M:%S %Y ] "
6.3 Konfigurieren Sie, welche URLs mit Apache verwaltet werden sollen
An dieser Stelle müssen Sie Apache so konfigurieren, dass es ihm mitteilt, welche URLs verarbeitet und an Tomcat übergeben werden sollen und welche URLs Apache selbst verarbeiten soll.
sudo vim /etc/apache2/sites-enabled/000-default.conf
Fügen Sie die folgende Zeile unter DocumentRoot
hinzu Eintrag. Dadurch ist es möglich, JRS über den Apache-Webserver anzufordern.
JkMount /examples worker1
JkMount /examples/* worker1
7. So überprüfen Sie, ob es funktioniert
Starten Sie die Apache- und Tomcat-Dienste neu:
sudo systemctl restart apache2
sudo systemctl restart tomcat
Sobald Sie den Server gestartet haben, öffnen Sie Ihren Internetbrowser und navigieren Sie zur URL http://server_ip_address:8080
. Tomcat wurde korrekt installiert, wenn Sie eine ähnliche Seite wie im Bild unten sehen.
Eine einfache Möglichkeit zu überprüfen, ob die Integration zwischen Apache HTTP Server und Tomcat funktioniert, besteht darin, eine der Beispieldateien anzufordern, die Tomcat bereitstellen soll.
Richten Sie Ihren Browser auf http://server_ip_address/examples/
und führen Sie einige der Beispielanwendungen aus.
Herzliche Glückwünsche! Sie haben Tomcat erfolgreich in Apache HTTP Server integriert.