GNU/Linux >> Znalost Linux >  >> Rocky Linux

Jak nainstalovat Apache Tomcat 10 s Nginx na Rocky Linux 8

Tomcat je webový server s otevřeným zdrojovým kódem pro aplikace založené na Javě. Používá se pro nasazení aplikací Java Servlet a JSP. Java servlety jsou malé programy definující, jak server zpracovává požadavky a odpovědi. Tomcat funguje jako open-source implementace technologií Java Servlet, JavaServer Pages, Java Expression Language a Java WebSocket.

K dispozici je několik verzí Tomcatu. V našem tutoriálu probereme instalaci Tomcat 10. Pokud chcete nainstalovat Tomcat 9, pokyny budou stejné. Pokud dojde k nějakým změnám, budou specifikovány v tutoriálu.

Pro náš tutoriál nainstalujeme Tomcat 10 spolu se serverem Nginx, aby fungoval jako reverzní proxy a chránil jej pomocí SSL. Existuje verze Tomcat 10.1.x, což je nejnovější alfa verze Tomcatu, ale nebudeme ji instalovat.

Předpoklady

  • Server se systémem Rocky Linux 8.5

  • Uživatel bez sudo s oprávněními superuživatele.

  • Ujistěte se, že je vše aktualizováno.

    $ sudo dnf update
    
  • Balíčky potřebné pro instalaci.

    $ sudo dnf install wget tar
    

Krok 1 – Instalace Java

Tomcat 9 a 10 vyžadují Java 8 a novější. Nainstalujeme OpenJDK 11, open-source implementaci platformy Java.

Spuštěním následujícího příkazu nainstalujte OpenJDK.

$ sudo dnf install java-11-openjdk-devel

Ověřte instalaci.

$ 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)

Krok 2 – Vytvoření systémového uživatele

Vytvoříme nového uživatele systému, abychom minimalizovali jakékoli bezpečnostní riziko spuštěním Tomcatu jako uživatel root. Pro nového uživatele nastavíme /opt/tomcat jako domovský adresář.

Spuštěním následujícího příkazu vytvořte nového uživatele systému pro Tomcat.

$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Krok 3 – Stáhnout Tomcat

Nejnovější verzi Tomcat v10 lze stáhnout z jeho stránky pro stahování. V době psaní tohoto návodu je v10.0.14 nejnovější dostupná verze. Před stažením Tomcatu zkontrolujte nejnovější verzi.

Použijte wget ke stažení Tomcat.

$ VERSION=10.0.14
$ wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

Extrahujte soubor do /opt/tomcat adresář.

$ sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Vytvořte symbolický odkaz na nejnovější verzi Tomcat, který ukazuje na instalační adresář Tomcatu.

$ sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

Změňte vlastnictví adresáře na uživatele vytvořeného dříve.

$ sudo chown -R tomcat:tomcat /opt/tomcat

Krok 4 – Vytvoření souboru systémové jednotky

Dalším krokem je vytvoření souboru služby pro server Tomcat, aby mohl být automaticky spuštěn.

Vytvořte a otevřete soubor /etc/systemd/system/tomcat.service pro úpravy.

$ sudo nano /etc/systemd/system/tomcat.service

Vložte následující kód.

[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

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni k uložení.

Krok 5 – Spuštění a aktivace služby Tomcat

Znovu načtěte servisního démona, abyste povolili službu Tomcat.

$ sudo systemctl daemon-reload

Povolte a spusťte službu Tomcat.

$ sudo systemctl enable tomcat --now

Zkontrolujte stav služby.

$ 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.

Krok 6 – Konfigurace brány firewall

Rocky Linux používá Firewalld Firewall. Zkontrolujte stav brány firewall.

$ sudo firewall-cmd --state
running

Povolit porty HTTP a HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Chcete-li změny povolit, znovu načtěte bránu firewall.

$ sudo firewall-cmd --reload

Krok 7 – Konfigurace webového rozhraní správy Tomcat

Webové rozhraní pro správu bude přístupné až poté, co pro něj vytvoříme přihlašovací údaje.

Uživatelé a role Tomcat jsou definovány v /opt/tomcat/latest/conf/tomcat-users.xml soubor. Otevřete soubor pro úpravy.

$ sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Přidejte následující řádky před </tomcat-users čára. Nahraďte uživatelské jméno a heslo svými přihlašovacími údaji.

Vyberte různé přihlašovací údaje pro portály Tomcat pro správce a správce.

<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>

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni k uložení.

Ve výchozím nastavení je rozhraní Tomcat přístupné pouze z localhost. Pokud k němu potřebujete mít přístup odkudkoli, musíte jej nakonfigurovat.

Otevřete /opt/tomcat/latest/webapps/manager/META-INF/context.xml pro úpravy.

$ sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml

Odstraňte následující řádky nebo je zakomentujte, jak je uvedeno níže, tím, že je uzavřete do <!-- a --> .

<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

Povolení přístupu z jakékoli IP adresy představuje bezpečnostní riziko. Můžete jej omezit povolením přístupu pouze z vaší veřejné IP adresy. Pokud je vaše veřejná IP adresa 22.22.22.22 a poté změňte řádek následovně.

 <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" />

Seznam povolených IP adres je oddělen svislým pruhem (| ). Můžete přidat jednu IP adresu nebo použít regulární výraz.

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni k uložení.

Proveďte stejné změny v souboru /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml také.

Po dokončení restartujte server Tomcat.

$ sudo systemctl restart tomcat

Krok 8 – Instalace protokolu SSL

Chcete-li nainstalovat certifikát SSL pomocí Let's Encrypt, musíme nainstalovat nástroj Certbot.

Nejprve si musíte stáhnout a nainstalovat úložiště EPEL.

$ sudo dnf install epel-release

Spuštěním následujících příkazů nainstalujte Certbot.

$ sudo dnf install certbot

Vygenerujte certifikát SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d tomcat.example.com

Výše uvedený příkaz stáhne certifikát do /etc/letsencrypt/live/tomcat.example.com adresář na vašem serveru.

Vytvořte skupinu Diffie-Hellman certifikát.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Vytvořte adresář webroot s výzvou pro automatické obnovení Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Vytvořte úlohu Cron pro obnovení SSL. Poběží každý den, aby se zkontroloval certifikát a v případě potřeby se obnoví. Nejprve vytvořte soubor /etc/cron.daily/certbot-renew a otevřete jej pro úpravy.

$ sudo nano /etc/cron.daily/certbot-renew

Vložte následující kód.

#!/bin/sh
certbot renew --cert-name tomcat.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Změňte oprávnění k souboru úlohy, aby byl spustitelný.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Krok 9 – Instalace Nginx

Rocky Linux 8.5 je dodáván s nejnovější stabilní verzí Nginx. Nainstalujte jej pomocí následujícího příkazu.

$ sudo dnf module install nginx:1.20

Ověřte instalaci.

$ nginx -v
nginx version: nginx/1.20.1

Povolte a spusťte službu Nginx.

$ sudo systemctl enable nginx --now

Vytvořte a otevřete soubor /etc/nginx/conf.d/tomcat.conf pro úpravy.

$ sudo nano /etc/nginx/conf.d/tomcat.conf

Vložte do něj následující kód.

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;
}

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni po dokončení.

Otevřete soubor /etc/nginx/nginx.conf pro úpravy.

$ sudo nano /etc/nginx/nginx.conf

Přidejte následující řádek před řádek include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size  64;

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Ověřte syntaxi konfiguračního souboru Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Restartujte službu Nginx, abyste povolili novou konfiguraci.

$ sudo systemctl restart nginx

Krok 10 – Spusťte TomCat

Spusťte https://tomcat.example.com ve vašem prohlížeči a otevře se následující obrazovka.

Nyní můžete přistupovat na stránky Stav serveru, Správce aplikací a Správce hostitelů pomocí přihlašovacích údajů, které jsme nakonfigurovali v kroku 7.

Závěr

Tímto končí náš tutoriál o instalaci a konfiguraci serveru Tomcat na serveru založeném na Rocky Linuxu 8.5 a jeho poskytování přes reverzní proxy server Nginx a použití protokolu SSL k jeho ochraně. Pokud máte nějaké dotazy, napište je do komentářů níže.


Rocky Linux
  1. Jak nainstalovat WordPress s LEMP (Nginx, MariaDB a PHP) na Rocky Linux 8?

  2. Jak nainstalovat Apache Maven na Rocky Linux/Alma Linux 8

  3. Jak nainstalovat ModSecurity s Nginx na Rocky Linux 8

  1. Jak nainstalovat Apache Tomcat 9 s Nginx Proxy na Debian 10

  2. Jak nainstalovat Fail2ban s Firewalld na Rocky Linux 8.4

  3. Jak nainstalovat Apache Kafka na Rocky Linux 8

  1. Jak nainstalovat Apache Tomcat 10 s Nginx na Rocky Linux 8

  2. Jak nainstalovat Apache Solr na Rocky Linux

  3. Jak nainstalovat Joomla s Nginx na Rocky Linux