Jetty es un servidor HTTP Java gratuito y de código abierto que se puede utilizar en diferentes proyectos, tanto en desarrollo como en producción. Jetty ocupa poco espacio, se puede integrar, tiene todas las funciones y es compatible con SPDY, WebSocket, OSGi, JNDI, JAAS y muchas otras integraciones. Jetty se utiliza en múltiples productos activos como Alfresco, Apache ActiveMQ, Apache Spark, Apache Maven, Red5 y Hadoop.
En este tutorial, le mostraremos cómo instalar Jetty en Debian 10.
Requisitos
- Un servidor que ejecuta Debian 10.
- Se ha configurado una contraseña raíz en su servidor.
Cómo empezar
Primero, se recomienda actualizar su sistema con la última versión. Puede hacerlo ejecutando el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez que su sistema esté actualizado, reinícielo para aplicar los cambios de configuración.
Instalar Java
Jetty es una aplicación basada en Java. Por lo tanto, deberá instalar Java en su sistema. De forma predeterminada, la última versión de Java está disponible en el repositorio predeterminado de Debian 10. Puede instalarlo simplemente ejecutando el siguiente comando:
apt-get install default-jdk -y
Una vez completada la instalación, puede verificar la versión de Java con el siguiente comando:
java --version
Deberías obtener el siguiente resultado:
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)
Instalar embarcadero
De forma predeterminada, Jetty está disponible en el repositorio predeterminado de Debian 10. Puede instalarlo simplemente ejecutando el siguiente comando:
apt-get install jetty9 -y
Una vez instalado, comprueba la versión de Jetty con el siguiente comando:
apt show jetty9
Debería ver el siguiente resultado:
Package: jetty9 Version: 9.4.15-1 Priority: optional Section: java Maintainer: Debian Java Maintainers <[email protected]> Installed-Size: 757 kB
A continuación, inicie el servicio Jetty y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start jetty9
systemctl enable jetty9
También puede verificar el estado del embarcadero usando el siguiente comando:
systemctl status jetty9
Deberías obtener el siguiente resultado:
? 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)
Configure Nginx como proxy inverso para Jetty
De forma predeterminada, Jetty se ejecuta en el puerto 8080. Por lo tanto, deberá configurar Nginx como proxy inverso para reenviar la solicitud del puerto 80 al 8080.
Para hacerlo, primero instale el servidor web Nginx con el siguiente comando:
apt-get install nginx -y
A continuación, cree un nuevo archivo de configuración de host virtual para Jetty con el siguiente comando:
nano /etc/nginx/sites-available/jetty.conf
Agregue las siguientes líneas:
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/; } }
Guarde y cierre el archivo cuando haya terminado. Luego, verifique Nginx por cualquier error de sintaxis con el siguiente comando:
nginx -t
Debería ver el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, habilite el host virtual Nginx y reinicie el servicio Nginx para aplicar la nueva configuración:
ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Acceso a la interfaz web del embarcadero
Ahora, abra su navegador web y escriba la URL http://example.com. Se le redirigirá al panel de control predeterminado de Jetty en la siguiente pantalla:
¡Felicidades! ha instalado y configurado correctamente Jetty con Nginx en Debian 10. Ahora puede implementar fácilmente su aplicación Java con Jetty.