Apache Tomcat è un server Web open source e un servlet container utilizzato principalmente per il server di applicazioni basate su Java.
In questa guida imparerai come installare Apache Tomcat 10 su Ubuntu 20.04 e proteggere la configurazione con Nginx e Let's Encrypt SSL.
Prerequisiti
- Un server con sistema operativo Ubuntu 20.04
- Un utente con privilegi sudo.
Configurazione iniziale
Inizia aggiornando i pacchetti del server all'ultima versione disponibile.
sudo apt update sudo apt dist-upgrade -y
Crea nuovo utente per Tomcat
Sarebbe meglio se Tomcat venisse eseguito come il proprio utente non privilegiato. Esegui il comando seguente per creare un nuovo utente con i privilegi richiesti per Tomcat. Questo utente non potrà accedere a SSH.
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
Installa Java
Installa JDK predefinito utilizzando il comando seguente.
sudo apt install default-jdk
Una volta completata l'installazione, controlla la versione utilizzando il seguente comando.
java -version
Il tuo output dovrebbe essere simile a quello qui sotto.
openjdk version "11.0.14.1" 2022-02-08 OpenJDK Runtime Environment (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Installa Apache Tomcat
Scarica l'ultima versione di Tomcat dalla loro pagina di download ufficiale. Scegli il tar.gz
nella sezione principale.
Scarica l'archivio usando wget.
cd ~/ wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
Estrai il contenuto in /opt/tomcat
directory.
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Configura le autorizzazioni corrette per i file Tomcat.
sudo chown -R tomcat:tomcat /opt/tomcat/ sudo chmod -R u+x /opt/tomcat/bin
Configura utenti amministratori
Ora dobbiamo configurare gli utenti che possono accedere a Gestione host e il Gestore pagine in Tomcat.
Aggiungi gli utenti con password in /opt/tomcat/conf/tomcat-users.xml
sudo nano /opt/tomcat/conf/tomcat-users.xml
Aggiungi le seguenti righe prima del tag di fine.
<role rolename="manager-gui" /> <user username="manager" password="secure_password" roles="manager-gui" /> <role rolename="admin-gui" /> <user username="admin" password="secure_password" roles="manager-gui,admin-gui" />
Ora abbiamo 2 utenti che possono accedere alle pagine Gestore e Gestore Host.
Configura Tomcat come servizio
Qui configureremo un servizio systemd per gestire Tomcat in modo che si avvii, si arresti e si riavvii automaticamente.
Prendi nota della posizione Java.
sudo update-java-alternatives -l
Output java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
Crea un file systemd.
sudo nano /etc/systemd/system/tomcat.service
Aggiungi i seguenti contenuti al file.
[Unit] Description=Tomcat After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-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 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Sostituisci JAVA_HOME variabile con quella che hai annotato prima.
Ricarica systemd daemon per rendere effettive le modifiche.
sudo systemctl daemon-reload
Avvia Tomcat.
sudo systemctl start tomcat
Consenti a Tomcat di avviarsi all'avvio del sistema.
sudo systemctl enable tomcat
Controlla lo stato di Tomcat.
sudo systemctl status tomcat
Output ● tomcat.service - Tomcat Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2022-04-20 08:57:23 UTC; 6s ago Process: 5155 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5162 (java) Tasks: 29 (limit: 1151) Memory: 136.4M CGroup: /system.slice/tomcat.service
Installa Nginx
Installa Nginx usando il seguente comando.
sudo apt install nginx
Rimuovi le configurazioni predefinite
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Configura proxy Nginx per Tomcat
Crea una nuova configurazione Nginx
sudo nano /etc/nginx/sites-available/yourdomainname.conf
Incolla quanto segue
server { listen [::]:80; listen 80; server_name yourdomainname.com www.yourdomainname.com; location / { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Salva ed esci dal file.
Abilita la tua configurazione creando un link simbolico.
sudo ln -s /etc/nginx/sites-available/yourdomainname.conf /etc/nginx/sites-enabled/yourdomainname.conf
Installa Let's Encrypt SSL con Certbot
Installa il pacchetto Certbot.
sudo apt install python3-certbot-nginx
Installa il certificato SSL utilizzando il comando seguente.
sudo certbot --nginx --redirect --no-eff-email --agree-tos -m [email protected] -d yourdomainname.com -d www.yourdomainname.com
Se il tuo dominio è puntato al server, il certificato SSL gratuito verrà installato e il reindirizzamento da HTTP a HTTPS verrà configurato automaticamente e Nginx verrà riavviato da solo affinché le modifiche abbiano effetto.
Se vuoi riavviare puoi controllare la tua configurazione di Nginx e riavviarla.
sudo nginx -t sudo service nginx restart
Preparati per un ruolo di Professionista dell'Information Technology con sistema operativo Linux
Verifica installazione Tomcat
Ora controlla il tuo dominio nel tuo browser.
Fai clic su App Manager , ti verrà chiesto di inserire nome utente e password. Usa quello che abbiamo configurato nella sezione Utenti Tomcat.
Puoi anche dare un'occhiata a Gestione host pagina.
Puoi anche visualizzare lo stato del server.
Conclusione
Ora hai imparato come installare Apache Tomcat su Ubuntu 20.04 e proteggere con Nginx e Let's Encrypt SSL..
Grazie per il tuo tempo. In caso di problemi o feedback, si prega di lasciare un commento qui sotto.