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 8.5 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 utilizzando wgetutility ed estrarremo l'archivio scaricato con unzip.
Se non hai queste utility installate sul tuo sistema puoi farlo digitando:
sudo apt install unzip wget
Installa OpenJDK #
Tomcat 8.5 richiede Java SE 7 o successivo. Per installare il pacchetto OpenJDK predefinito dai repository Debian 9, eseguire il seguente comando:
sudo apt install default-jdk
Crea utente Tomcat #
L'esecuzione di Tomcat come utente root è un rischio per la sicurezza e non è consigliabile.
Per creare un nuovo utente e gruppo di sistema per la nostra istanza Tomcat con la directory home di /opt/tomcat
eseguire il comando seguente:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Scarica Tomcat #
Scaricheremo l'ultima versione di Tomcat 8.5.x dalla pagina dei download di Tomcat. Al momento in cui scrivo, l'ultima versione è 8.5.37. Prima di scaricare il file zip dovresti controllare la pagina di download per una nuova versione.
Passa a /tmp
directory e scarica il file zip con wget
:
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip
Al termine del download, esegui i seguenti comandi per estrarre il file zip e spostarlo in /opt/tomcat
directory:
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
Per avere un maggiore controllo sulle versioni e sugli aggiornamenti di Tomcat, creeremo un collegamento simbolico denominato latest
che punterà alla directory di installazione di Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
Successivamente, quando aggiornerai la versione di 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 emettendo il seguente chmod
comando:
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 8.5 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
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-06-06 10:51:36 UTC; 3s ago
Process: 21187 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 21195 (java)
Tasks: 44 (limit: 4915)
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 l'arresto e il riavvio di 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
Quando si esegue un'applicazione Tomcat in un ambiente di produzione, è molto probabile che si disponga di un sistema di bilanciamento del carico o di un proxy inverso, ed è consigliabile limitare l'accesso alla porta 8080 solo alla 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 il nostro 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.