Jetty è un server HTTP Java gratuito e open source che può essere utilizzato in diversi progetti, sia in fase di sviluppo che di produzione. Jetty ha un ingombro ridotto, è integrabile, completo e supporta SPDY, WebSocket, OSGi, JNDI, JAAS e molte altre integrazioni. Jetty è utilizzato in più prodotti attivi come Alfresco, Apache ActiveMQ, Apache Spark, Apache Maven, Red5 e Hadoop.
In questo tutorial, ti mostreremo come installare Jetty su Debian 10.
Requisiti
- Un server che esegue Debian 10.
- Sul tuo server è configurata una password di root.
Per iniziare
Innanzitutto, si consiglia di aggiornare il sistema con l'ultima versione. Puoi farlo eseguendo il seguente comando:
apt-get update -y
apt-get upgrade -y
Una volta aggiornato il sistema, riavvia il sistema per applicare le modifiche alla configurazione.
Installa Java
Jetty è un'applicazione basata su Java. Quindi, dovrai installare Java sul tuo sistema. Per impostazione predefinita, l'ultima versione di Java è disponibile nel repository predefinito di Debian 10. Puoi installarlo semplicemente eseguendo il seguente comando:
apt-get install default-jdk -y
Una volta completata l'installazione, puoi verificare la versione Java con il seguente comando:
java --version
Dovresti ottenere il seguente output:
openjdk 11.0.3 2019-04-16 OpenJDK Runtime Environment (build 11.0.3+7-post-Debian-5) OpenJDK 64-Bit Server VM (build 11.0.3+7-post-Debian-5, mixed mode, sharing)
Installa Jetty
Per impostazione predefinita, Jetty è disponibile nel repository predefinito di Debian 10. Puoi installarlo semplicemente eseguendo il seguente comando:
apt-get install jetty9 -y
Una volta installato, controlla la versione di Jetty con il seguente comando:
apt show jetty9
Dovresti vedere il seguente output:
Package: jetty9 Version: 9.4.15-1 Priority: optional Section: java Maintainer: Debian Java Maintainers <[email protected]> Installed-Size: 757 kB
Quindi, avvia il servizio Jetty e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start jetty9
systemctl enable jetty9
Puoi anche controllare lo stato del molo usando il seguente comando:
systemctl status jetty9
Dovresti ottenere il seguente output:
? jetty9.service - Jetty 9 Web Application Server Loaded: loaded (/lib/systemd/system/jetty9.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-09-28 02:47:55 EDT; 1min 11s ago Docs: https://www.eclipse.org/jetty/documentation/current/ Main PID: 1658 (java) Tasks: 24 (limit: 1138) Memory: 69.9M CGroup: /system.slice/jetty9.service ??1658 /usr/bin/java -Djetty.home=/usr/share/jetty9 -Djetty.base=/usr/share/jetty9 -Djava.io.tmpdir=/tmp -jar /usr/share/jetty9/star Sep 28 02:48:12 debian jetty9[1658]: 2019-09-28 02:48:12.492:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///var/lib/jetty9/we Sep 28 02:48:14 debian jetty9[1658]: 2019-09-28 02:48:14.079:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=16ms Sep 28 02:48:14 debian jetty9[1658]: 2019-09-28 02:48:14.602:INFO:oejshC.root:main: Warning: No org.apache.tomcat.JarScanner set in ServletCont Sep 28 02:48:15 debian jetty9[1658]: 2019-09-28 02:48:15.796:INFO:oajs.TldScanner:main: At least one JAR was scanned for TLDs yet contained no Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.312:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0 Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.315:INFO:oejs.session:main: No SessionScavenger set, using defaults Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.318:INFO:oejs.session:main: node0 Scavenging every 600000ms Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.587:INFO:oejsh.ContextHandler:main: Started [email protected]{root,/,file Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.836:INFO:oejs.AbstractConnector:main: Started [email protected]{HTTP/1.1,[http/ Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.843:INFO:oejs.Server:main: Started @21109ms lines 1-20/20 (END)
Configura Nginx come proxy inverso per Jetty
Per impostazione predefinita, Jetty funziona sulla porta 8080. Quindi dovrai configurare Nginx come proxy inverso per inoltrare la richiesta dalla porta 80 a 8080.
Per farlo, installa prima il server web Nginx con il seguente comando:
apt-get install nginx -y
Quindi, crea un nuovo file di configurazione dell'host virtuale per Jetty con il comando seguente:
nano /etc/nginx/sites-available/jetty.conf
Aggiungi le seguenti righe:
upstream jetty { server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5; } server { listen 80; server_name example.com; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_pass http://jetty/; } }
Salva e chiudi il file quando hai finito. Quindi, controlla Nginx per eventuali errori di sintassi con il seguente comando:
nginx -t
Dovresti vedere il seguente output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Quindi, abilita l'host virtuale Nginx e riavvia il servizio Nginx per applicare la nuova configurazione:
ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Accedi all'interfaccia web di Jetty
Ora apri il tuo browser web e digita l'URL http://example.com. Verrai reindirizzato alla dashboard predefinita di Jetty nella schermata seguente:
Congratulazioni! hai installato e configurato correttamente Jetty con Nginx su Debian 10. Ora puoi facilmente distribuire la tua applicazione Java con Jetty.