Apache Tomcat è un server di applicazioni open source che supporta le tecnologie Java Servlet, JavaServer Pages, Java Expression Language e Java WebSocket. È una delle applicazioni e dei server Web più utilizzati al mondo oggi.
Questo tutorial ti mostrerà come installare Apache Tomcat 9.0 su Debian 9 e configurare l'interfaccia di gestione web di Tomcat.
Prerequisiti #
Prima di continuare con questo tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo.
Scaricheremo il file zip Tomcat usando wget. Se non hai wget
installato sul tuo sistema puoi farlo digitando:
sudo apt install wget
Installazione di OpenJDK #
Tomcat 9.0 richiede Java SE 8 o successivo. Per installare il pacchetto OpenJDK predefinito dai repository Debian 9, eseguire il seguente comando:
sudo apt install default-jdk
Creazione di un utente Tomcat #
L'esecuzione di Tomcat come utente root è un rischio per la sicurezza e non è consigliabile.
Crea un nuovo utente e gruppo di sistema con una directory home di /opt/tomcat
eseguendo il comando seguente:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Questo utente verrà utilizzato per eseguire il servizio Tomcat.
Download di Tomcat #
Scaricheremo l'ultima versione di Tomcat 9.0.x dalla pagina dei download di Tomcat.
Al momento in cui scrivo, l'ultima versione di Tomcat è la 9.0.27. Prima di continuare con il passaggio successivo, dovresti controllare la pagina di download di Tomcat 9 per vedere se è disponibile una versione più recente.
Passa a /tmp
directory e scarica il file zip con wget
:
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
Al termine del download, estrai il file tar:
tar -xf apache-tomcat-9.0.27.tar.gz
Sposta i file sorgente Tomcat su di esso in /opt/tomcat
directory:
sudo mv apache-tomcat-9.0.27 /opt/tomcat/
Tomcat 9 viene aggiornato frequentemente. Per avere un maggiore controllo su versioni e aggiornamenti, crea un collegamento simbolico chiamato latest
, che punta alla directory di installazione di Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Successivamente, durante l'aggiornamento della versione Tomcat, puoi semplicemente decomprimere la versione più recente e modificare il collegamento simbolico in modo che punti all'ultima versione.
Modifica la proprietà del /opt/tomcat
directory all'utente e al gruppo tomcat
in modo che l'utente possa accedere all'installazione di Tomcat:
sudo chown -R tomcat: /opt/tomcat
crea anche gli script all'interno di bin
directory eseguibile:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Crea un file di unità systemd #
Crea un nuovo tomcat.service
file unit nel /etc/systemd/system/
directory con i seguenti contenuti:
[Unit]
Description=Tomcat 9.0 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
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
[Install]
WantedBy=multi-user.target
Notifica a systemd che abbiamo creato un nuovo file di unità e avviamo il servizio Tomcat eseguendo:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Controlla lo stato del servizio Tomcat digitando:
sudo systemctl status tomcat
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-12-01 20:47:50 UTC; 4s ago
Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1767 (java)
CGroup: /system.slice/tomcat.service
Se non ci sono errori, puoi abilitare l'avvio automatico del servizio Tomcat all'avvio:
sudo systemctl enable tomcat
Puoi avviare, interrompere e riavviare Tomcat come qualsiasi altro servizio di unità di sistema:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
Regola il firewall #
Se il tuo firewall è in esecuzione sul tuo sistema Debian e desideri accedere all'interfaccia Tomcat dall'esterno della tua rete locale, dovrai aprire la porta 8080
:
sudo ufw allow 8080/tcp
In genere, quando si esegue un'applicazione Tomcat in un ambiente di produzione, si trova dietro un servizio di bilanciamento del carico o un proxy inverso. È buona norma limitare l'accesso alla porta 8080
solo alla tua rete interna. Configura interfaccia di gestione Web Tomcat #
Ora che Tomcat è installato sul tuo server Debian, il passaggio successivo consiste nel creare un utente con accesso all'interfaccia di gestione web.
Gli utenti Tomcat e i loro ruoli sono definiti in tomcat-users.xml
file.
Se apri il file, noterai che è pieno di commenti ed esempi che descrivono come configurare il file.
sudo vim /opt/tomcat/latest/conf/tomcat-users.xml
Definiremo un nuovo utente con accesso all'interfaccia web di Tomcat (manager-gui e admin-gui) nel tomcat-users.xml
file, come mostrato di seguito. Assicurati di cambiare il nome utente e la password con qualcosa di più sicuro:
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Per impostazione predefinita, l'interfaccia di gestione web di Tomcat consente l'accesso solo da localhost. Se desideri accedere all'interfaccia web da un IP remoto o da qualsiasi luogo, cosa sconsigliata perché rischiosa per la sicurezza, puoi aprire i seguenti file e apportare le seguenti modifiche.
Se devi accedere all'interfaccia web da qualsiasi luogo, apri i seguenti file e commenta o rimuovi le righe evidenziate in giallo:
/opt/tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Se devi accedere all'interfaccia web solo da un IP specifico, invece di commentare i blocchi aggiungi il tuo IP pubblico all'elenco. Supponiamo che il tuo IP pubblico sia 32.32.32.32
e vuoi consentire l'accesso solo da quell'IP:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|32.32.32.32" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|32.32.32.32" />
</Context>
L'elenco degli indirizzi IP consentiti è un elenco separato da una barra verticale |
. Puoi aggiungere singoli indirizzi IP o utilizzare espressioni regolari.
Riavvia il servizio Tomcat per rendere effettive le modifiche:
sudo systemctl restart tomcat
Verifica l'installazione #
Apri il browser e digita:http://<your_domain_or_IP_address>:8080
Se l'installazione va a buon fine, apparirà una schermata simile alla seguente:
Il dashboard di Tomcat Web Application Manager è disponibile all'indirizzo http://<your_domain_or_IP_address>:8080/manager/html
. Da qui puoi distribuire, annullare la distribuzione, avviare, interrompere e ricaricare le tue applicazioni.
Il dashboard di Tomcat Virtual Host Manager è disponibile all'indirizzo http://<your_domain_or_IP_address>:8080/host-manager/html
. Da qui puoi creare, eliminare e gestire gli host virtuali Tomcat.