Jetty-Webserver ist ein Java-basierter HTTP-Server und Servlet-Container. Webserver werden im Allgemeinen verwendet, um dem Client statische Inhalte bereitzustellen. Heutzutage wird Jetty in großen Rahmen für die Server-zu-Server-Kommunikation verwendet.
Jetty wird unter Open-Source-Lizenz von der Eclipse Foundation entwickelt. Es wird in mehreren aktiven Produkten wie Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark und auch in offenen Projekten wie Hadoop, Eucalyptus und Red5 verwendet.
Jetty unterstützt die neueste Java Servlet API sowie die Protokolle SPDY und WebSocket.
Diese Anleitung hilft Ihnen bei der Installation von Jetty auf CentOS 7 / RHEL 7.
Voraussetzungen
Installieren Sie die Download-Dateien des wget-Pakets in einem Terminal.
yum -y install wget
Java 8 installieren
Jetty erfordert Java 8. Sie können Oracle Java 8 oder OpenJDK 8 installieren. Hier verwende ich OpenJDK 8.
yum -y install java-1.8.0-openjdk
Überprüfen Sie die Java-Version mit dem folgenden Befehl.
java -version
Ausgabe:
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)
Laden Sie Jetty Web Server herunter und installieren Sie es
Laden Sie die neueste Version des Jetty-Webservers herunter.
wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.17.v20190418/jetty-distribution-9.4.17.v20190418.tar.gz
Extrahieren Sie die heruntergeladene Archivdatei nach /opt.
tar -zxvf jetty-distribution-9.4.17.v20190418.tar.gz
Verschieben Sie das Jetty-Verzeichnis nach /opt oder in das gewünschte Verzeichnis.
mv jetty-distribution-9.4.17.v20190418 /opt/jetty
Jett Webserver konfigurieren
Erstellen Sie einen Benutzer namens jetty, um den Jetty-Webserver beim Systemstart auszuführen.
useradd -m jetty
Eigentümer des Jetty-Verzeichnisses ändern.
chown -R jetty:jetty /opt/jetty/
Erstellen und ändern Sie den Besitz von Jetty PID.
mkdir /var/run/jetty chown -R jetty:jetty /var/run/jetty
Der Jetty-Webserver wird mit einem Init-Skript geliefert. Verknüpfen Sie die jetty.sh per Symlink mit dem /etc/init.d-Verzeichnis, um den Jetty-Dienst einfach zu verwalten.
ln -s /opt/jetty/bin/jetty.sh /etc/init.d/jetty
Fügen Sie den Jetty-Webserver zum Start hinzu.
chkconfig --add jetty
Anlegerbasis erstellen
Erstellen Sie ein Basisverzeichnis, um Ihre Webanwendungen bereitzustellen.
mkdir /opt/jetty/my_base/
Aktivieren Sie einen HTTP-Connector und den Webanwendungsbereitsteller.
cd /opt/jetty/my_base/ java -jar /opt/jetty/start.jar --add-to-start=http,deploy
Dem Benutzer erlauben, Dateien in die Jetty-Basis zu schreiben.
chown -R jetty:jetty /opt/jetty/my_base/
Jetty-Webserver starten
Legen Sie Standardwerte in der Datei /etc/default/jetty fest.
vi /etc/default/jetty
Ersetzen Sie den Port und die Listening-Adresse entsprechend.
JETTY_HOME=/opt/jetty JETTY_BASE=/opt/jetty/my_base JETTY_USER=jetty JETTY_PORT=8080 JETTY_HOST=192.168.1.10
Starten Sie nun den Stegdienst.
service jetty start
Ausgabe:
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
Fügen Sie eine Firewall-Regel hinzu, um dem Jetty-Webserver zu erlauben, Webanfragen von externen Rechnern zu bedienen.
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
Greifen Sie auf den Jetty-Webserver zu
Sie können auf Jetty zugreifen, indem Sie auf die folgende URL gehen.
http://Ihre-IP-Adresse:8080Webanwendung bereitstellen
Das Bereitstellen von Anwendungen in Jetty ist sehr einfach. Sie müssen lediglich die .war-Datei in das webapps-Verzeichnis Ihrer Jett-Basis kopieren.
Kopieren Sie die Beispielanwendungen aus /opt/jetty/demo-base/webapps. Für diese Demo kopiere ich async-rest.war in unser Basis-Webapps-Verzeichnis.
cp /opt/jetty/demo-base/webapps/async-rest.war /opt/jetty/my_base/webapps/
Nachdem Sie kopiert haben, sehen Sie die Nachricht im Terminal in etwa wie unten.
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}
Sie können die bereitgestellte Webanwendung überprüfen, indem Sie zur folgenden URL gehen.
http://deine-ip-adresse-ess:8080/async-rest/Schlussfolgerung
In diesem Lernprogramm haben Sie gelernt, wie Sie den Jetty-Webserver unter CentOS 7 installieren und eine Beispiel-Webanwendung bereitgestellt. Weitere Informationen finden Sie auf der Dokumentationsseite von Jetty.