Apache Tomcat è un servlet Java open source e un container Java Server Page. Gli sviluppatori creano e distribuiscono applicazioni dinamiche basate su Java utilizzando Apache Tomcat. I servlet Java sono piccoli programmi Java che definiscono come un server gestisce le richieste e le risposte. Gli sviluppatori scrivono i servlet mentre Tomcat gestisce tutto il back-end e il routing. Essendo uno strumento opensource, Apache Tomcat è fornito da sviluppatori di tutto il mondo.
Apache Tomcat è un server Web HTTP Java open source sviluppato dalla Apache Software Foundation. Tomcat aiuta a distribuire il servlet Java e le pagine JavaServer e le serve come un server web HTTP.
In questa guida installeremo Apache Tomcat 10 su Ubuntu 21.
Installa il sistema JDK Ubuntu Linux.
apt update
apt install default-jdk

Controlla la versione java con il seguente comando:
java -version

Scarica l'archivio Apache Tomcat.
apt install wget
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.12/bin/apache-tomcat-10.0.12.tar.gz

Estrai il file tar.
tar -xvzf apache-tomcat-10.0.12.tar.gz
Sposta il file estratto nella directory /usr/share.
mv apache-tomcat-10.0.12/ /usr/share/apache-tomcat
Crea un utente Apache Tomcat perché useremo questo utente. Concedi anche le autorizzazioni all'utente Tomcat.
useradd -M -d /usr/share/apache-tomcat tomcat
chown -R tomcat /usr/share/apache-tomcat
Consenti l'accesso all'interfaccia utente di Apache Tomcat dal tuo IP.
nano /usr/share/apache-tomcat/webapps/manager/META-INF/context.xml
Aggiungi il tuo IP in questo file.

Fai lo stesso con il seguente file:
nano /usr/share/apache-tomcat/webapps/host-manager/META-INF/context.xml

Salva ed esci da entrambi i file dopo aver aggiunto l'IP.
Ora proteggi l'accesso all'interfaccia utente di amministrazione. Modifica il seguente file:
nano /usr/share/apache-tomcat/conf/tomcat-users.xml
Aggiungi le seguenti righe prima del contesto :
<!-- manager section user role -->
<role rolename="manager-gui" />
<user username="manager" password="Passw0rd" roles="manager-gui" />
<!-- admin section user role -->
<role rolename="admin-gui" />
<user username="admin" password="Strong123" roles="manager-gui,admin-gui" />

salva ed esci dal file.
Crea unità systemd per Tomcat per avviare/arrestare e riavviare il servizio.
nano /etc/systemd/system/tomcat.service
Incolla le seguenti righe:
[Unit]
Description=Tomcat
After=syslog.target network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/usr/share/apache-tomcat
Environment=CATALINA_BASE=/usr/share/apache-tomcat
Environment=CATALINA_PID=/usr/share/apache-tomcat/temp/tomcat.pid
ExecStart=/usr/share/apache-tomcat/bin/catalina.sh start
ExecStop=/usr/share/apache-tomcat/bin/catalina.sh stop
[Install]
WantedBy=multi-user.target

Salva ed esci.
Ricarica il demone di sistema e avvia Tomcat Service.
systemctl daemon-reload
systemctl restart tomcat
systemctl enable tomcat
systemctl status tomcat
ufw allow 8080

Ora apri il tuo browser web e digita https://yourIP:8080. Vedrai la pagina Tomcat predefinita. Puoi usarlo secondo le tue necessità.
