Apache Tomcat è un'implementazione open source delle tecnologie Java Servlet, JavaServer Pages, Java Expression Language e Java WebSocket. È oggi una delle applicazioni e dei server Web più adottati al mondo. Tomcat è semplice da usare e dispone di un solido ecosistema di componenti aggiuntivi.
Questo tutorial spiega come installare e configurare Tomcat 9 su Ubuntu 18.04. Le stesse istruzioni si applicano per Ubuntu 16.04 e qualsiasi distribuzione basata su Ubuntu, inclusi Linux Mint e OS elementare.
Prerequisiti #
Per poter installare i pacchetti sul tuo sistema Ubuntu, devi essere loggato come utente con privilegi sudo.
Passaggio 1:installa OpenJDK #
Tomcat richiede l'installazione di Java. Installeremo OpenJDK, che è lo sviluppo Java predefinito e il runtime in Ubuntu 18.04.
L'installazione di Java è piuttosto semplice. Inizia aggiornando l'indice del pacchetto:
sudo apt update
Installa il pacchetto OpenJDK eseguendo:
sudo apt install default-jdk
Fase 2:crea un utente Tomcat #
Per motivi di sicurezza, Tomcat non deve essere eseguito con l'utente root. Creeremo un nuovo utente e gruppo di sistema con la directory home /opt/tomcat
che eseguirà il servizio Tomcat:
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
Fase 3:installa Tomcat #
Scaricheremo l'ultima versione binaria di Tomcat 9 dalla pagina dei download di Tomcat 9.
Al momento in cui scrivo, l'ultima versione è 9.0.27
. Prima di continuare con il passaggio successivo, dovresti controllare la pagina di download per una nuova versione. Se c'è una nuova versione, copia il link nel Core tar.gz
file, che si trova nella sezione Distribuzioni binarie.
Inizia scaricando l'archivio Tomcat nel /tmp
directory utilizzando il seguente wget
comando:
wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp
Una volta completato il download, estrai l'archivio Tomcat e spostalo in /opt/tomcat
directory:
sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat
Per avere un maggiore controllo sulle versioni e sugli aggiornamenti di Tomcat, 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, se desideri aggiornare la tua istanza Tomcat, decomprimi semplicemente la versione più recente e modifica il collegamento simbolico in modo che punti all'ultima versione.
Come accennato nella sezione precedente, Tomcat verrà eseguito sotto tomcat
utente. Questo utente deve avere accesso alla directory di installazione di Tomcat.
Il comando seguente cambia la proprietà della directory in utente e gruppo Tomcat:
sudo chown -RH tomcat: /opt/tomcat/latest
Gli script all'interno di bin
la directory deve avere il flag eseguibile:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Fase 4:crea un file unit systemd #
Per eseguire Tomcat come servizio è necessario creare un nuovo file di unità.
Apri il tuo editor di testo e crea un file chiamato tomcat.service
nel /etc/systemd/system/
:
sudo nano /etc/systemd/system/tomcat.service
Incolla la seguente configurazione:
/etc/systemd/system/tomcat.service[Unit]
Description=Tomcat 9 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 -Djava.awt.headless=true"
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
Modifica il valore di JAVA_HOME
se il percorso dell'installazione Java è diverso. Salva e chiudi il file e notifica a systemd che abbiamo creato un nuovo file unit:
sudo systemctl daemon-reload
Avvia il servizio Tomcat eseguendo:
sudo systemctl start tomcat
Verifica lo stato del servizio con il seguente comando:
sudo systemctl status tomcat
* tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 15:45:28 PDT; 20s ago
Process: 1582 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1604 (java)
Tasks: 47 (limit: 2319)
CGroup: /system.slice/tomcat.service
Se non ci sono errori, abilita l'avvio automatico del servizio Tomcat all'avvio:
sudo systemctl enable tomcat
Passaggio 5:regola il firewall #
Se il tuo server è protetto da un firewall e vuoi accedere a Tomcat dall'esterno della tua rete locale, devi aprire la porta 8080
.
Per consentire il traffico sulla porta 8080
digita il seguente comando:
sudo ufw allow 8080/tcp
Di solito, quando si esegue un'applicazione Tomcat in un ambiente di produzione, si dispone di un servizio di bilanciamento del carico o di un proxy inverso. È buona norma limitare l'accesso alla porta 8080
solo alla tua rete interna. Passaggio 6:configurazione dell'interfaccia di gestione Web Tomcat #
Ora che Tomcat è installato e funzionante, il passaggio successivo consiste nel creare un utente con accesso all'interfaccia di gestione web.
Gli utenti ei ruoli Tomcat sono definiti in tomcat-users.xml
file. Questo file è un modello con commenti ed esempi che descrivono come configurare l'utente o il ruolo.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Per aggiungere un nuovo utente con accesso all'interfaccia web Tomcat (manager-gui e admin-gui) dobbiamo definire l'utente 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 è configurata per limitare l'accesso alle app Manager e Host Manager solo dall'host locale.
Se vuoi poter accedere all'interfaccia web da un IP remoto, dovrai rimuovere queste restrizioni. Ciò può avere varie implicazioni sulla sicurezza e non è consigliato per i sistemi di produzione.
Per abilitare l'accesso all'interfaccia web da qualsiasi luogo, apri i due file seguenti e commenta o rimuovi le righe evidenziate in giallo.
Per l'app Manager, apri il seguente file:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Per l'app Host Manager, apri il seguente file:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
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>
Un'altra opzione è consentire l'accesso alle app Manager e Host Manager solo da un IP specifico. Invece di commentare i blocchi puoi semplicemente aggiungere il tuo indirizzo IP all'elenco.
Ad esempio, se il tuo IP pubblico è 45.45.45.45
apporteresti la seguente modifica:
<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|45.45.45.45" />
</Context>
L'elenco degli indirizzi IP consentiti è un elenco separato da una barra verticale |
. Puoi aggiungere singoli indirizzi IP o utilizzare espressioni regolari.
Ricorda di riavviare il servizio Tomcat ogni volta che modifichi i file di configurazione Tomcat affinché le modifiche abbiano effetto:
sudo systemctl restart tomcat
Fase 6:verifica dell'installazione di Tomcat #
Apri il browser e digita:http://<your_domain_or_IP_address>:8080
Supponendo che l'installazione abbia esito positivo, dovrebbe apparire 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.
Puoi accedere con l'utente che hai creato nel Step 6
.
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.