Jetty JAVA http Server installeren op Debian 10

Jetty is een vrije en open-source Java HTTP server die in verschillende projecten kan worden gebruikt, zowel in ontwikkeling als in productie. Jetty heeft een kleine voetafdruk, is embeddable, full-featured en ondersteunt SPDY, WebSocket, OSGi, JNDI, JAAS en vele andere integraties. Jetty wordt gebruikt in meerdere actieve producten zoals Alfresco, Apache ActiveMQ, Apache Spark, Apache Maven, Red5 en Hadoop.

In deze handleiding laten we je zien hoe je Jetty op Debian 10 kunt installeren.

Vereisten

  • Een server met Debian 10.
  • Een root wachtwoord is op je server ingesteld.

Aan de slag

Eerst is het aan te raden je systeem met de nieuwste versie te updaten. Je kunt dat doen door het volgende commando uit te voeren:

apt-get update -y
 apt-get upgrade -y

Als je systeem geüpdatet is, herstart je je systeem om de configuratie veranderingen toe te passen.

Installeer Java

Jetty is een op Java gebaseerde toepassing. Je zult dus Java op je systeem moeten installeren. Standaard is de nieuwste versie van Java beschikbaar in de standaard repository van Debian 10. Je kunt het installeren door gewoon het volgende commando uit te voeren:

apt-get install default-jdk -y

Als de installatie voltooid is, kun je de Java versie controleren met het volgende commando:

java --version

Je zou de volgende uitvoer moeten krijgen:

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)

Installeer Jetty

Jetty is standaard beschikbaar in de Debian 10 standaard repository. Je kunt het installeren door gewoon het volgende commando uit te voeren:

apt-get install jetty9 -y

Eenmaal geïnstalleerd, controleer je de Jetty versie met het volgende commando:

apt show jetty9

Je zou de volgende uitvoer moeten zien:

Package: jetty9
Version: 9.4.15-1
Priority: optional
Section: java
Maintainer: Debian Java Maintainers <pkg-java[email protected]>
Installed-Size: 757 kB

Start vervolgens de Jetty dienst en zet hem aan om te starten na systeem herstart met het volgende commando:

systemctl start jetty9
 systemctl enable jetty9

Je kunt ook de Jetty status controleren met het volgende commando:

systemctl status jetty9

Je zou de volgende uitvoer moeten krijgen:

? 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 o.e.j.w.WebAppContext@2f4948e4{root,/,file
Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.836:INFO:oejs.AbstractConnector:main: Started ServerConnector@18419dc8{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)

Configureer Nginx als een Reverse Proxy voor Jetty

Standaard draait Jetty op poort 8080. Je zult dus Nginx als een omgekeerde proxy moeten instellen om het verzoek van de poort 80 naar 8080 door te sturen.

Om dat te doen installeer je eerst Nginx webserver met het volgende commando:

apt-get install nginx -y

Maak vervolgens een nieuw virtual host configuratiebestand voor Jetty met het volgende commando:

nano /etc/nginx/sites-available/jetty.conf

Voeg de volgende regels toe:

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/;
  }
}

Sla het bestand op en sluit het als je klaar bent. Controleer Nginx dan op een eventuele syntaxfout met het volgende commando:

nginx -t

Je zou de volgende uitvoer moeten zien:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Schakel vervolgens de Nginx virtuele host in en herstart Nginx service om de nieuwe configuratie toe te passen:

ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
 systemctl restart nginx

Toegang tot Jetty Web Interface

Open nu je web browser en typ de URL http://example.com. Je wordt doorgestuurd naar het Jetty standaard dashboard in het volgende scherm:

Jetty op Debian

Gefeliciteerd! Je hebt Jetty met succes geïnstalleerd en geconfigureerd met Nginx op Debian 10. Je kunt nu gemakkelijk je Java toepassing met Jetty implementeren.