Cos'è Tomcat?
In questo articolo, dimostreremo come installare Apache Tomcat su CentOS 8. Prima di iniziare, definiamo esattamente cos'è Apache Tomcat. Apache definisce Tomcat come:"Un contenitore servlet open source, JavaServer Pages, Java Expression Language e tecnologia WebSocket che funge anche da server Web. Offre un ambiente server HTTP basato su "puro Java" in cui Java può essere eseguito .” Tomcat funziona con il linguaggio di programmazione Java ed è associato ad applicazioni web scritte in Java.
Prerequisiti
Il nostro primo compito è assicurarci che il nostro sistema sia aggiornato. Poiché installeremo Tomcat su CentOS 8, eseguiremo i seguenti comandi.
cat /etc/redhat-release
yum -y install epel-release
yum -y update -y
Successivamente, dobbiamo verificare se Java è già installato.
java -version
Ma se non abbiamo installato Java, riceveremo l'output nello ScreenShot qui sotto.
Installa Java
Andando avanti, installiamo Java.Apache Tomcat non funzionerà correttamente se Java non è presente sul sistema. Inoltre, dobbiamo assicurarci di installare Java OpenJDK 11. Poiché è open source e una versione a lungo termine, lo faremo non incorrere in alcun problema di licenza. Per eseguire questa operazione, utilizzeremo il seguente comando.
dnf install java-11-openjdk-devel -y
Quindi, verificheremo la versione di Java installata eseguendo questo comando.
java -version
Installazione di Tomcat
Nota: Al momento della stesura di questo articolo, l'ultima versione di Tomcat è la 10.0.6. Se desideri scaricare l'ultima versione, visita questo link per il download di Tomcat 10 per verificare la versione più recente.
Quindi, per prima cosa dobbiamo creare un utente per Tomcat.
useradd -r tomcat
Successivamente, creeremo una cartella e quindi utilizzeremo "cd ” comando per cambiare le directory in quella cartella in cui scaricheremo Tomcat.
mkdir /usr/local/tomcat10
cd /usr/local/tomcat10
Ora scarichiamo l'archivio Tomcat usando curl (wget è anche un'opzione se è installato sulla tua versione di CentOS 8.)
curl -o tomcat10.tar.gz https://downloads.apache.org/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz
Nota: L'uso del comando curl con il flag -o ci consente di scaricare il file tar.gz e salvarlo localmente con il nome di file che scegliamo. In questo caso, abbiamo semplicemente salvato il file come tomcat10.tar.gz.
Quindi, successivamente, possiamo decomprimere il file “tomcat10 tar.gz ” nella nostra cartella di lavoro.
tar -xvf tomcat10.tar.gz
Quindi, ora dobbiamo modificare la proprietà della directory /usr/local/tomcat10/.
chown -R tomcat:tomcat /usr/local/tomcat10
Quindi copia i file in apache-tomcat10.0.6 nella directory tomcat10 utilizzando i seguenti comandi:
cd apache-tomcat-10.0.6/
cp -r * /usr/local/tomcat10
Oltre a Per impostazione predefinita, i tuoi file si troveranno in questa cartella:/usr/local/tomcat 10 e i file di configurazione verranno archiviati in:/usr/local/tomcat10/conf
ll
Imposta variabile d'ambiente
Ora possiamo configurare la variabile d'ambiente CATALINA_HOME utilizzando i seguenti comandi:
echo "export CATALINA_HOME="/usr/local/tomcat10"" >> ~/.bashrc
source ~/.bashrc
Questa variabile è impostata per garantire che l'accesso al software sia consentito a tutti gli utenti del sistema.
Crea e configura il servizio Systemd
Quindi, per prima cosa, esaminiamo le nostre informazioni Java poiché avremo bisogno di tali informazioni per popolare parte del nostro file di unità.
alternatives --list | grep java
Quindi, per assicurarci di avere Tomcat configurato come servizio, creeremo un semplice file di unità di sistema.
Nota: Un file unit è un record di testo normale che definisce le risorse di sistema che sono disponibili per essere gestite dai demoni di systemd.
touch /etc/systemd/system/tomcat.service
vim /etc/systemd/system/tomcat.service
Ora possiamo aggiungere le seguenti informazioni al nostro nuovo file di unità.
[Unit]
Description=Apache Tomcat Server
After=syslog.target network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=CATALINA_PID=/usr/local/tomcat10/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat10
Environment=CATALINA_BASE=/usr/local/tomcat10
ExecStart=/usr/local/tomcat10/bin/catalina.sh start
ExecStop=/usr/local/tomcat10/bin/catalina.sh stop
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Questo file unit può contenere più direttive oltre a quelle elencate sopra. Dopodiché, dobbiamo salvare il file (usando :wq) e ricaricare il servizio per applicare le modifiche.
systemctl daemon-reload
Quindi ora possiamo testare il file di configurazione Java di systemd.
Avvia, abilita e controlla lo stato di Tomcat
Quindi, avviamo il servizio Tomcat e quindi abilitiamolo.
[root@unixcop tomcat10]# systemctl start tomcat.service
[root@unixcop tomcat10]# systemctl enable tomcat.service
Ora possiamo verificarne lo stato usando il seguente comando.
systemctl status tomcat.service
Infine, premi il tasto 'q' per uscire dal controllo dello stato e tornare al prompt di bash.
Verifica versione
Per recuperare le informazioni sul server Tomcat, possiamo utilizzare il seguente comando:
/usr/local/tomcat10/bin/version.sh
Test
Quindi, apriamo un browser per testare la connessione.
Carica http://localhost:8080 o http://serverIP:8080 nel tuo browser e dovresti vedere un'immagine come quella qui sotto.
Errori!
Se per caso, ricevi un "err_ssl_protocol_error ” quando visiti http://ip.ad.dr.ess:8080/, verifica l'errore utilizzando curl e, una volta verificato, procedi come segue.
#curl -Iv https://IPADDRESS:8080
Ad esempio, l'ip della mia macchina aggiunge:
curl -Iv https://192.168.232.128:8080
1. Verifica che le porte Java/Tomcat siano aperte nel firewall
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --zone=public --permanent --add-port=8443/tcp
2. Quindi eseguire un comando netstat per verificare se il server sta ascoltando gli indirizzi IPv4 (e/o l'indirizzo IPv6, se necessario).
Quindi, dopo aver controllato netstat, abbiamo visto che Tomcat era legato solo alle porte del protocollo IPv6.
[root@unixcop tomcat10]# netstat -nlp | grep java
Nota: Quindi potrebbe essere necessario installare Netstat utilizzando il comando "yum install net-tools" per visualizzare questo problema poiché la nostra versione di CentOS 8 non includeva il comando netstat per impostazione predefinita.
Per risolvere questo problema, crea un file chiamato setenv.sh all'interno della tua directory CATALINA_BASE o CATALINA_HOME bin/
(abbiamo usato /usr/local/tomcat10/bin cartella).
Quindi crea un nuovo file chiamato setenv.sh.
cd bin/
touch setenv.sh
vim setenv.sh
Fai clic su Inserisci e aggiungi la seguente riga al file.
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
Questa voce sovrascrive le impostazioni predefinite utilizzate da Tomcat. Una volta completata l'attività, salva ed esci dal file utilizzando “:wq ” e ricaricare i servizi per salvare le nostre modifiche.
systemctl daemon-reload
Quindi ora, controlliamo di nuovo le porte con lo stesso comando:
[root@unixcop tomcat10]# netstat -nlp | grep java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 59815/java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 59815/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 59815/java
Verifica che le porte firewall corrette siano aperte.
[root@unixcop ~]# firewall-cmd --zone=public --list-ports | grep 8080
8080/tcp 8443/tcp
[root@unixcop ~]#
Quindi, se tutto ciò fallisce, puoi interrompere e disabilitare temporaneamente il servizio firewall per testare la tua pagina Tomcat:
systemctl disable firewalld
systemctl stop firewalld
Impostazioni di configurazione
Ecco un paio di utili impostazioni di configurazione per Tomcat.
Aggiungi utenti
Quindi potrebbe essere necessario aggiungere nuovi utenti o un utente amministratore. Possiamo farlo andando nella cartella Tomcat conf e modificando queste impostazioni.
[root@unixcop conf]# cd /usr/local/tomcat10/conf
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="_SECRET_PASSWORD_" roles="manager-gui,admin-gui" />
Nota:Possiamo aprire il file tramite vi o vim oppure utilizzando il file manager e aprendo il file utilizzando un editor di testo .
Infine, usa :wq per salvare il file.
Cambiare le porte
Quindi, a volte, potresti voler eseguire Tomcat su una porta alternativa. A tal fine, è possibile modificare l'impostazione della porta del connettore nel file server.xml.
Questi sono i passi da compiere.
[root@unixcop conf]# cd /usr/local/tomcat10/conf/
[root@unixcop conf]# vim /usr/local/tomcat10/conf/server.xml
Oltre a Nel file server.xml o da un editor di testo, possiamo modificare la riga "Porta connettore", cambiandola dalla porta 8080 alla 80 o qualsiasi altro numero di porta che scegliamo.
Line
68 <Connector port="8080" protocol="HTTP/1.1"
69 connectionTimeout="20000"
70 redirectPort="8443" />
Conclusione
Nel complesso, Tomcat facilita facilmente lo scambio di dati tra un client e il servlet, fornisce una piattaforma di programmazione per le applicazioni web e assume le funzioni di identificazione e autorizzazione dei client, creando sessioni per ciascuno di essi in modo sicuro e protetto.