Tomcat ist ein Open-Source-Webserver für Java-basierte Anwendungen. Es wird zum Bereitstellen von Java-Servlet- und JSP-Anwendungen verwendet. Java-Servlets sind kleine Programme, die definieren, wie ein Server Anforderungen und Antworten behandelt. Tomcat fungiert als Open-Source-Implementierung der Technologien Java Servlet, JavaServer Pages, Java Expression Language und Java WebSocket.
Es sind mehrere Versionen von Tomcat verfügbar. Wir werden die Installation von Tomcat 10 für unser Tutorial besprechen. Wenn Sie Tomcat 9 installieren möchten, sind die Anweisungen die gleichen. Wenn es Änderungen gibt, werden diese im Tutorial angegeben.
Für unser Tutorial werden wir Tomcat 10 zusammen mit dem Nginx-Server installieren, um als Reverse-Proxy zu fungieren und ihn mit SSL zu schützen. Es gibt eine Tomcat 10.1.x-Version, die die neueste Alpha-Version von Tomcat ist, aber wir werden diese nicht installieren.
Voraussetzungen
-
Ein Server mit Rocky Linux 8.5
-
Ein Nicht-Sudo-Benutzer mit Superuser-Berechtigungen.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo dnf update
-
Für die Installation benötigte Pakete.
$ sudo dnf install wget tar
Schritt 1 – Java installieren
Tomcat 9 und 10 erfordern Java 8 und höher. Wir werden OpenJDK 11 installieren, die Open-Source-Implementierung der Java-Plattform.
Führen Sie den folgenden Befehl aus, um OpenJDK zu installieren.
$ sudo dnf install java-11-openjdk-devel
Überprüfen Sie die Installation.
$ java -version openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
Schritt 2 – Systembenutzer erstellen
Wir werden einen neuen Systembenutzer erstellen, um jedes Sicherheitsrisiko zu minimieren, indem wir Tomcat als Root-Benutzer ausführen. Für den neuen Benutzer setzen wir /opt/tomcat
als Home-Verzeichnis.
Führen Sie den folgenden Befehl aus, um einen neuen Systembenutzer für Tomcat zu erstellen.
$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Schritt 3 – Laden Sie Tomcat herunter
Die neueste Version von Tomcat v10 kann von der Download-Seite heruntergeladen werden. Zum Zeitpunkt der Erstellung dieses Tutorials ist v10.0.14 die neueste verfügbare Version. Überprüfen Sie die neueste Version, bevor Sie Tomcat herunterladen.
Verwenden Sie wget
um Tomcat herunterzuladen.
$ VERSION=10.0.14 $ wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz
Extrahieren Sie die Datei nach /opt/tomcat
Verzeichnis.
$ sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Erstellen Sie einen symbolischen Link zur neuesten Version von Tomcat, der auf das Installationsverzeichnis von Tomcat verweist.
$ sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Ändern Sie den Eigentümer des Verzeichnisses auf den zuvor erstellten Benutzer.
$ sudo chown -R tomcat:tomcat /opt/tomcat
Schritt 4 – Erstellen Sie eine Systemd-Unit-Datei
Der nächste Schritt besteht darin, eine Servicedatei für den Tomcat-Server zu erstellen, damit dieser automatisch gestartet werden kann.
Erstellen und öffnen Sie die Datei /etc/systemd/system/tomcat.service
zum Bearbeiten.
$ sudo nano /etc/systemd/system/tomcat.service
Fügen Sie den folgenden Code ein.
[Unit] Description=Apache Tomcat 10 Servlet container Wants=network.target 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 Restart=always [Install] WantedBy=multi-user.target
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie zum Speichern aufgefordert werden.
Schritt 5 – Starten und aktivieren Sie den Tomcat-Dienst
Laden Sie den Service-Daemon neu, um den Tomcat-Service zu aktivieren.
$ sudo systemctl daemon-reload
Aktivieren und starten Sie den Tomcat-Dienst.
$ sudo systemctl enable tomcat --now
Überprüfen Sie den Dienststatus.
$ sudo systemctl status tomcat ? tomcat.service - Apache Tomcat 10 Servlet container Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2021-12-17 15:54:28 UTC; 24s ago Process: 86219 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 86226 (java) Tasks: 19 (limit: 11411) Memory: 132.7M CGroup: /system.slice/tomcat.service ??86226 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties> Dec 17 15:54:27 howtoforge systemd[1]: Starting Apache Tomcat 10 Servlet container... Dec 17 15:54:28 howtoforge systemd[1]: Started Apache Tomcat 10 Servlet container.
Schritt 6 – Firewall konfigurieren
Rocky Linux verwendet Firewalld Firewall. Überprüfen Sie den Status der Firewall.
$ sudo firewall-cmd --state running
HTTP- und HTTPS-Ports zulassen.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Laden Sie die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 7 – Konfigurieren Sie die Tomcat-Webverwaltungsschnittstelle
Auf die Webverwaltungsoberfläche kann erst zugegriffen werden, wenn wir dafür Benutzeranmeldeinformationen erstellt haben.
Tomcat-Benutzer und -Rollen werden in /opt/tomcat/latest/conf/tomcat-users.xml
definiert Datei. Öffnen Sie die Datei zum Bearbeiten.
$ sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Fügen Sie die folgenden Zeilen vor </tomcat-users
hinzu Linie. Ersetzen Sie den Benutzernamen und das Passwort durch Ihre Anmeldeinformationen.
Wählen Sie unterschiedliche Anmeldeinformationen für Manager- und Administrator-Tomcat-Portale aus.
<tomcat-users> <!-- Comments --> <role rolename="manager-gui"/> <user username="manager" password="managerpassword" roles="manager-gui" /> <role rolename="admin-gui"/> <user username="admin" password="adminpassword" roles="admin-gui"/> </tomcat-users>
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie zum Speichern aufgefordert werden.
Standardmäßig ist die Tomcat-Schnittstelle nur vom localhost aus zugänglich. Wenn Sie von überall darauf zugreifen müssen, müssen Sie es konfigurieren.
Öffnen Sie /opt/tomcat/latest/webapps/manager/META-INF/context.xml
zum Bearbeiten.
$ sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Entfernen Sie die folgenden Zeilen oder kommentieren Sie sie wie unten angegeben aus, indem Sie sie in <!--
einschließen und -->
.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Das Zulassen des Zugriffs von einer beliebigen IP-Adresse ist ein Sicherheitsrisiko. Sie können es einschränken, indem Sie den Zugriff nur von Ihrer öffentlichen IP-Adresse aus zulassen. Wenn Ihre öffentliche IP-Adresse 22.22.22.22 ist , dann ändern Sie die Zeile wie folgt.
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|22.22.22.22" />
Die Liste der erlaubten IP-Adressen wird durch einen senkrechten Strich getrennt (| ). Sie können entweder einzelne IP-Adressen hinzufügen oder einen regulären Ausdruck verwenden.
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie zum Speichern aufgefordert werden.
Führen Sie dieselben Änderungen an der Datei /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
durch auch.
Wenn Sie fertig sind, starten Sie den Tomcat-Server neu.
$ sudo systemctl restart tomcat
Schritt 8 – SSL installieren
Um ein SSL-Zertifikat mit Let's Encrypt zu installieren, müssen wir das Certbot-Tool installieren.
Zuerst müssen Sie das EPEL-Repository herunterladen und installieren.
$ sudo dnf install epel-release
Führen Sie die folgenden Befehle aus, um Certbot zu installieren.
$ sudo dnf install certbot
Generieren Sie das SSL-Zertifikat.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d tomcat.example.com
Der obige Befehl lädt ein Zertifikat in /etc/letsencrypt/live/tomcat.example.com
herunter Verzeichnis auf Ihrem Server.
Erstellen Sie eine Diffie-Hellman-Gruppe Zertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Erstellen Sie ein herausforderndes Webroot-Verzeichnis für die automatische Verlängerung von Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew
und zum Bearbeiten öffnen.
$ sudo nano /etc/cron.daily/certbot-renew
Fügen Sie den folgenden Code ein.
#!/bin/sh certbot renew --cert-name tomcat.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Schritt 9 – Nginx installieren
Rocky Linux 8.5 wird mit der neuesten stabilen Version von Nginx ausgeliefert. Installieren Sie es mit dem folgenden Befehl.
$ sudo dnf module install nginx:1.20
Überprüfen Sie die Installation.
$ nginx -v nginx version: nginx/1.20.1
Aktivieren und starten Sie den Nginx-Dienst.
$ sudo systemctl enable nginx --now
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/tomcat.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/conf.d/tomcat.conf
Fügen Sie den folgenden Code ein.
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name tomcat.example.com; access_log /var/log/nginx/tomcat.access.log; error_log /var/log/nginx/tomcat.error.log; # SSL ssl_certificate /etc/letsencrypt/live/tomcat.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/tomcat.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/tomcat.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 8.8.8.8; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # enforce HTTPS server { listen 80; listen [::]:80; server_name tomcat.example.com; return 301 https://$host$request_uri; }zurück
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.
Öffnen Sie die Datei /etc/nginx/nginx.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf;
hinzu .
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie den Nginx-Dienst neu, um die neue Konfiguration zu aktivieren.
$ sudo systemctl restart nginx
Schritt 10 – TomCat ausführen
Starten Sie https://tomcat.example.com
in Ihrem Browser, und es öffnet sich der folgende Bildschirm.
Sie können jetzt mit den Anmeldeinformationen, die wir in Schritt 7 konfiguriert haben, auf die Seiten Serverstatus, Manager-App und Host-Manager zugreifen.
Schlussfolgerung
Damit ist unser Tutorial zum Installieren und Konfigurieren von Tomcat Server auf einem Rocky Linux 8.5-basierten Server und zum Bereitstellen über einen Nginx-Reverse-Proxy sowie zum Verwenden von SSL zum Schutz abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.