Le serveur Web Jetty est un serveur HTTP basé sur Java et un conteneur de servlets. Les serveurs Web sont généralement utilisés pour fournir du contenu statique au client. De nos jours, Jetty est utilisé pour la communication de serveur à serveur, dans de grands cadres.
Jetty est développé sous licence open source par la fondation Eclipse. Il est utilisé dans plusieurs produits actifs tels qu'Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark et également dans des projets ouverts tels que Hadoop, Eucalyptus et Red5.
Jetty prend en charge la dernière API Java Servlet ainsi que les protocoles SPDY et WebSocket.
Ce guide vous aidera à installer Jetty sur CentOS 7 / RHEL 7.
Prérequis
Installez les fichiers de téléchargement du package wget dans un terminal.
yum -y install wget
Installer Java 8
Jetty nécessite Java 8. Vous pouvez installer Oracle Java 8 ou OpenJDK 8. Ici, j'utiliserai OpenJDK 8.
yum -y install java-1.8.0-openjdk
Vérifiez la version Java à l'aide de la commande ci-dessous.
java -version
Sortie :
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)
Télécharger et installer le serveur Web Jetty
Téléchargez la dernière version du serveur Web Jetty.
wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.17.v20190418/jetty-distribution-9.4.17.v20190418.tar.gz
Extrayez le fichier d'archive téléchargé vers /opt.
tar -zxvf jetty-distribution-9.4.17.v20190418.tar.gz
Déplacez le répertoire Jetty vers /opt ou vers le répertoire de votre choix.
mv jetty-distribution-9.4.17.v20190418 /opt/jetty
Configurer le serveur Web Jett
Créez un utilisateur appelé jetty pour exécuter le serveur Web jetty au démarrage du système.
useradd -m jetty
Changer la propriété du répertoire Jetty.
chown -R jetty:jetty /opt/jetty/
Créez et modifiez la propriété de Jetty PID.
mkdir /var/run/jetty chown -R jetty:jetty /var/run/jetty
Le serveur Web Jetty est livré avec un script d'initialisation. Liez symboliquement jetty.sh au répertoire /etc/init.d pour gérer facilement le service Jetty.
ln -s /opt/jetty/bin/jetty.sh /etc/init.d/jetty
Ajoutez le serveur Web Jetty au démarrage.
chkconfig --add jetty
Créer une base de jetée
Créez un répertoire de base pour déployer vos applications Web.
mkdir /opt/jetty/my_base/
Activez un connecteur HTTP et le déployeur d'applications Web.
cd /opt/jetty/my_base/ java -jar /opt/jetty/start.jar --add-to-start=http,deploy
Autoriser l'utilisateur à écrire des fichiers dans la base Jetty.
chown -R jetty:jetty /opt/jetty/my_base/
Démarrer le serveur Web Jetty
Définissez les valeurs par défaut dans le fichier /etc/default/jetty.
vi /etc/default/jetty
Remplacez le port et l'adresse d'écoute en conséquence.
JETTY_HOME=/opt/jetty JETTY_BASE=/opt/jetty/my_base JETTY_USER=jetty JETTY_PORT=8080 JETTY_HOST=192.168.1.10
Démarrez maintenant le service de la jetée.
service jetty start
Sortie :
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
Pare-feu
Ajoutez une règle de pare-feu pour permettre au serveur Web Jetty de répondre aux requêtes Web provenant de machines externes.
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
Accéder au serveur Web Jetty
Vous pouvez accéder à Jetty en accédant à l'URL ci-dessous.
http://votre-adresse-ip:8080Déployer une application Web
Déployer des applications dans Jetty est très simple. Il vous suffit de copier le fichier .war dans le répertoire webapps de votre base Jett.
Copiez les exemples d'applications depuis /opt/jetty/demo-base/webapps. Pour cette démo, je vais copier async-rest.war dans notre répertoire webapps de base.
cp /opt/jetty/demo-base/webapps/async-rest.war /opt/jetty/my_base/webapps/
Après avoir copié, vous verrez le message dans le terminal quelque chose comme ci-dessous.
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}
Vous pouvez vérifier l'application Web déployée en accédant à l'URL ci-dessous.
http://votre-adresse-ip:8080/async-rest/Conclusion
Dans ce didacticiel, vous avez appris à installer le serveur Web Jetty sur CentOS 7 et à déployer un exemple d'application Web. Vous pouvez visiter la page de documentation de Jetty pour plus d'informations.