Il server Web Jetty è un server HTTP basato su Java e un contenitore servlet. I server Web vengono generalmente utilizzati per fornire contenuto statico al client. Al giorno d'oggi Jetty viene utilizzato per la comunicazione da server a server, all'interno di grandi framework.
Jetty è sviluppato con licenza open source dalla fondazione Eclipse. Viene utilizzato in più prodotti attivi come Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark e anche in progetti aperti come Hadoop, Eucalyptus e Red5.
Jetty supporta la più recente API Servlet Java, nonché i protocolli SPDY e WebSocket.
Questa guida ti aiuterà a installare Jetty su CentOS 7 / RHEL 7.
Prerequisiti
Installa i file di download del pacchetto wget in un terminale.
yum -y install wget
Installa Java 8
Jetty richiede Java 8. Puoi installare Oracle Java 8 o OpenJDK 8. Qui userò OpenJDK 8.
yum -y install java-1.8.0-openjdk
Verifica la versione Java utilizzando il comando seguente.
java -version
Risultato:
openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-b04) OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
Scarica e installa Jetty Web Server
Scarica l'ultima versione del server web di Jetty.
wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.17.v20190418/jetty-distribution-9.4.17.v20190418.tar.gz
Estrarre il file di archivio scaricato in /opt.
tar -zxvf jetty-distribution-9.4.17.v20190418.tar.gz
Sposta la directory di Jetty in /opt o nella directory che desideri.
mv jetty-distribution-9.4.17.v20190418 /opt/jetty
Configura il server Web Jett
Crea un utente chiamato jetty per eseguire il server web jetty all'avvio del sistema.
useradd -m jetty
Modifica la proprietà della directory di Jetty.
chown -R jetty:jetty /opt/jetty/
Crea e modifica la proprietà di Jetty PID.
mkdir /var/run/jetty chown -R jetty:jetty /var/run/jetty
Il server web Jetty viene fornito con uno script di inizializzazione. Collega in modo simbolico jetty.sh alla directory /etc/init.d per gestire facilmente il servizio Jetty.
ln -s /opt/jetty/bin/jetty.sh /etc/init.d/jetty
Aggiungi il server web di Jetty all'avvio.
chkconfig --add jetty
Crea base del molo
Crea una directory di base per distribuire le tue applicazioni web.
mkdir /opt/jetty/my_base/
Abilita un connettore HTTP e il distributore dell'applicazione web.
cd /opt/jetty/my_base/ java -jar /opt/jetty/start.jar --add-to-start=http,deploy
Consenti all'utente di scrivere file nella base del molo.
chown -R jetty:jetty /opt/jetty/my_base/
Avvia Jetty Web Server
Imposta i valori predefiniti nel file /etc/default/jetty.
vi /etc/default/jetty
Sostituisci la porta e l'indirizzo di ascolto di conseguenza.
JETTY_HOME=/opt/jetty JETTY_BASE=/opt/jetty/my_base JETTY_USER=jetty JETTY_PORT=8080 JETTY_HOST=192.168.1.10
Ora avvia il servizio di pontile.
service jetty start
Risultato:
Starting Jetty: StartLog to /var/run/jetty/jetty-start.log 2019-04-27 16:32:22.663:INFO::main: Logging initialized @1331ms to org.eclipse.jetty.util.log.StdErrLog 2019-04-27 16:32:23.228:INFO:oejs.Server:main: jetty-9.4.17.v20190418; built: 2019-04-18T19:45:35.259Z; git: aa1c656c315c011c01e7b21aabb04066635b9f67; jvm 1.8.0_212-b04 2019-04-27 16:32:23.260:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty/my_base/webapps/] at interval 1 2019-04-27 16:32:23.312:INFO:oejs.AbstractConnector:main: Started ServerConnector@59ec2012{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} 2019-04-27 16:32:23.313:INFO:oejs.Server:main: Started @1981ms OK Sat Apr 27 16:32:25 EDT 2019
Firewall
Aggiungi una regola firewall per consentire al server Web Jetty di soddisfare le richieste Web provenienti da macchine esterne.
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
Accedi al server Web di Jetty
Puoi accedere a Jetty andando all'URL sottostante.
http://il-tuo-indirizzo-ip:8080Distribuire l'applicazione Web
La distribuzione di applicazioni in Jetty è molto semplice. Tutto quello che devi fare è copiare il file .war nella directory webapps della tua base Jett.
Copia le applicazioni di esempio da /opt/jetty/demo-base/webapps. Per questa demo, copierò async-rest.war nella nostra directory webapps di base.
cp /opt/jetty/demo-base/webapps/async-rest.war /opt/jetty/my_base/webapps/
Dopo aver copiato, vedrai il messaggio nel terminale qualcosa come di seguito.
2019-04-27 16:34:40.219:WARN::Scanner-0: async-rest webapp is deployed. DO NOT USE IN PRODUCTION! 2019-04-27 16:34:40.240:INFO:oejw.StandardDescriptorProcessor:Scanner-0: NO JSP Support for /async-rest, did not find org.eclipse.jetty.jsp.JettyJspServlet 2019-04-27 16:34:40.269:INFO:oejs.session:Scanner-0: DefaultSessionIdManager workerName=node0 2019-04-27 16:34:40.269:INFO:oejs.session:Scanner-0: No SessionScavenger set, using defaults 2019-04-27 16:34:40.270:INFO:oejs.session:Scanner-0: node0 Scavenging every 660000ms 2019-04-27 16:34:40.367:INFO:oejsh.ContextHandler:Scanner-0: Started o.e.j.w.WebAppContext@11c8b2b{Async REST Webservice Example,/async-rest,[file:///tmp/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-2277232371361906309.dir/webapp/, jar:file:///tmp/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-2277232371361906309.dir/webapp/WEB-INF/lib/example-async-rest-jar-9.4.17.v20190418.jar!/META-INF/resources],AVAILABLE}{/async-rest.war}
Puoi controllare l'applicazione web distribuita andando al seguente URL.
http://il-tuo-indirizzo-ip:8080/async-rest/Conclusione
In questo tutorial, hai imparato come installare il server Web Jetty su CentOS 7 e hai distribuito un'applicazione Web di esempio. Puoi visitare la pagina della documentazione di Jetty per ulteriori informazioni.