Jetty est un serveur HTTP Java gratuit et open-source qui peut être utilisé dans différents projets, à la fois en développement et en production. Jetty a un faible encombrement, est intégrable, complet et prend en charge SPDY, WebSocket, OSGi, JNDI, JAAS et de nombreuses autres intégrations. Jetty est utilisé dans plusieurs produits actifs tels qu'Alfresco, Apache ActiveMQ, Apache Spark, Apache Maven, Red5 et Hadoop.
Dans ce tutoriel, nous allons vous montrer comment installer Jetty sur Debian 10.
Exigences
- Un serveur exécutant Debian 10.
- Un mot de passe root est configuré sur votre serveur.
Mise en route
Tout d'abord, il est recommandé de mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :
apt-get update -y
apt-get upgrade -y
Une fois votre système mis à jour, redémarrez votre système pour appliquer les modifications de configuration.
Installer Java
Jetty est une application basée sur Java. Vous devrez donc installer Java sur votre système. Par défaut, la dernière version de Java est disponible dans le référentiel par défaut de Debian 10. Vous pouvez l'installer en exécutant simplement la commande suivante :
apt-get install default-jdk -y
Une fois l'installation terminée, vous pouvez vérifier la version de Java avec la commande suivante :
java --version
Vous devriez obtenir le résultat suivant :
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)
Installer Jetty
Par défaut, Jetty est disponible dans le référentiel par défaut de Debian 10. Vous pouvez l'installer en exécutant simplement la commande suivante :
apt-get install jetty9 -y
Une fois installé, vérifiez la version de Jetty avec la commande suivante :
apt show jetty9
Vous devriez voir le résultat suivant :
Package: jetty9 Version: 9.4.15-1 Priority: optional Section: java Maintainer: Debian Java Maintainers <[email protected]> Installed-Size: 757 kB
Ensuite, démarrez le service Jetty et activez-le après le redémarrage du système avec la commande suivante :
systemctl start jetty9
systemctl enable jetty9
Vous pouvez également vérifier l'état de la jetée à l'aide de la commande suivante :
systemctl status jetty9
Vous devriez obtenir le résultat suivant :
? 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)
Configurer Nginx en tant que proxy inverse pour Jetty
Par défaut, Jetty s'exécute sur le port 8080. Vous devrez donc configurer Nginx en tant que proxy inverse pour transférer la requête du port 80 vers 8080.
Pour ce faire, installez d'abord le serveur Web Nginx avec la commande suivante :
apt-get install nginx -y
Ensuite, créez un nouveau fichier de configuration d'hôte virtuel pour Jetty avec la commande suivante :
nano /etc/nginx/sites-available/jetty.conf
Ajoutez les lignes suivantes :
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/; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez voir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, activez l'hôte virtuel Nginx et redémarrez le service Nginx pour appliquer la nouvelle configuration :
ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Interface Web d'accès à la jetée
Maintenant, ouvrez votre navigateur Web et tapez l'URL http://example.com. Vous serez redirigé vers le tableau de bord par défaut de Jetty dans l'écran suivant :
Toutes nos félicitations! vous avez installé et configuré avec succès Jetty avec Nginx sur Debian 10. Vous pouvez désormais déployer facilement votre application Java avec Jetty.