El servidor web Jetty es un servidor HTTP basado en Java y un contenedor de servlet. Los servidores web generalmente se utilizan para servir contenido estático al cliente. Hoy en día, Jetty se usa para la comunicación de servidor a servidor, dentro de grandes marcos.
Jetty está desarrollado bajo licencia de código abierto por la fundación Eclipse. Se utiliza en múltiples productos activos como Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark y también en proyectos abiertos como Hadoop, Eucalyptus y Red5.
Jetty es compatible con la última API de Java Servlet, así como con los protocolos SPDY y WebSocket.
Esta guía lo ayudará a instalar Jetty en CentOS 7 / RHEL 7.
Requisitos
Instale los archivos de descarga del paquete wget en una terminal.
yum -y install wget
Instalar Java 8
Jetty requiere Java 8. Puede instalar Oracle Java 8 u OpenJDK 8. Aquí, usaré OpenJDK 8.
yum -y install java-1.8.0-openjdk
Verifique la versión de Java usando el siguiente comando.
java -version
Salida:
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)
Descargar e Instalar el Servidor Web Jetty
Descarga la última versión del servidor 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
Extraiga el archivo comprimido descargado a /opt.
tar -zxvf jetty-distribution-9.4.17.v20190418.tar.gz
Mueva el directorio Jetty a /opt o al directorio que desee.
mv jetty-distribution-9.4.17.v20190418 /opt/jetty
Configurar el servidor web Jett
Cree un usuario llamado jetty para ejecutar el servidor web jetty al iniciar el sistema.
useradd -m jetty
Cambiar la propiedad del directorio Jetty.
chown -R jetty:jetty /opt/jetty/
Crear y cambiar la propiedad de Jetty PID.
mkdir /var/run/jetty chown -R jetty:jetty /var/run/jetty
El servidor web Jetty viene con un script de inicio. Enlace simbólico jetty.sh al directorio /etc/init.d para administrar el servicio Jetty fácilmente.
ln -s /opt/jetty/bin/jetty.sh /etc/init.d/jetty
Agregue el servidor web Jetty al inicio.
chkconfig --add jetty
Crear base de embarcadero
Cree un directorio base para implementar sus aplicaciones web.
mkdir /opt/jetty/my_base/
Habilite un conector HTTP y el implementador de aplicaciones web.
cd /opt/jetty/my_base/ java -jar /opt/jetty/start.jar --add-to-start=http,deploy
Permitir al usuario escribir archivos en la base Jetty.
chown -R jetty:jetty /opt/jetty/my_base/
Iniciar servidor web Jetty
Establezca los valores predeterminados en el archivo /etc/default/jetty.
vi /etc/default/jetty
Reemplace el puerto y la dirección de escucha según corresponda.
JETTY_HOME=/opt/jetty JETTY_BASE=/opt/jetty/my_base JETTY_USER=jetty JETTY_PORT=8080 JETTY_HOST=192.168.1.10
Ahora inicia el servicio de embarcadero.
service jetty start
Salida:
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
Cortafuegos
Agregue una regla de firewall para permitir que el servidor web Jetty atienda solicitudes web provenientes de máquinas externas.
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
Acceder al servidor web de Jetty
Puede acceder a Jetty yendo a la siguiente URL.
http://su-dirección-ip-ess:8080Implementar aplicación web
Implementar aplicaciones en Jetty es muy fácil. Todo lo que tiene que hacer es copiar el archivo .war al directorio webapps de su base Jett.
Copie las aplicaciones de muestra de /opt/jetty/demo-base/webapps. Para esta demostración, copiaré async-rest.war en nuestro directorio base de aplicaciones web.
cp /opt/jetty/demo-base/webapps/async-rest.war /opt/jetty/my_base/webapps/
Después de copiar, verá el mensaje en la terminal algo como a continuación.
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}
Puede verificar la aplicación web implementada yendo a la siguiente URL.
http://su-dirección-ip-ess:8080/async-rest/Conclusión
En este tutorial, aprendió a instalar el servidor web Jetty en CentOS 7 y a implementar una aplicación web de muestra. Puede visitar la página de documentación de Jetty para obtener más información.