GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So installieren Sie Apache Tomcat 10 mit Nginx unter Rocky Linux 8

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.


Rocky Linux
  1. So installieren Sie Apache Tomcat 9 mit Nginx Proxy unter Debian 10

  2. Wie installiere ich WordPress mit LEMP (Nginx, MariaDB und PHP) unter Rocky Linux 8?

  3. So installieren Sie Apache Maven unter Rocky Linux/Alma Linux 8

  4. So installieren Sie ModSecurity mit Nginx unter Rocky Linux 8

  5. So installieren Sie Apache Kafka unter Rocky Linux 8

So installieren Sie Apache Tomcat unter Rocky Linux 8

So installieren Sie Sails.js Framework mit Nginx unter Rocky Linux 8

So installieren Sie Apache Tomcat 10 auf Ubuntu 20.04 mit Nginx

So installieren Sie Apache Tomcat 10 auf Ubuntu 22.04 mit Nginx

So installieren Sie Nginx unter Rocky Linux 8

So installieren Sie Nginx unter Rocky Linux 9