Jetty je bezplatný a open-source Java HTTP server, který lze použít v různých projektech, jak ve vývoji, tak ve výrobě. Jetty má malé rozměry, je vložitelný, plně vybavený a podporuje SPDY, WebSocket, OSGi, JNDI, JAAS a mnoho dalších integrací. Jetty se používá v mnoha aktivních produktech, jako jsou Alfresco, Apache ActiveMQ, Apache Spark, Apache Maven, Red5 a Hadoop.
V tomto tutoriálu vám ukážeme, jak nainstalovat Jetty na Debian 10.
Požadavky
- Server se systémem Debian 10.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve se doporučuje aktualizovat váš systém na nejnovější verzi. Můžete to udělat spuštěním následujícího příkazu:
apt-get update -y
apt-get upgrade -y
Jakmile je váš systém aktualizován, restartujte systém, aby se změny konfigurace projevily.
Instalovat Javu
Jetty je aplikace založená na Javě. Budete tedy muset do svého systému nainstalovat Javu. Ve výchozím nastavení je ve výchozím úložišti Debian 10 k dispozici nejnovější verze Javy. Můžete jej nainstalovat pouhým spuštěním následujícího příkazu:
apt-get install default-jdk -y
Po dokončení instalace můžete zkontrolovat verzi Java pomocí následujícího příkazu:
java --version
Měli byste získat následující výstup:
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)
Instalovat molo
Ve výchozím nastavení je Jetty k dispozici ve výchozím úložišti Debian 10. Můžete jej nainstalovat pouhým spuštěním následujícího příkazu:
apt-get install jetty9 -y
Po instalaci zkontrolujte verzi Jetty pomocí následujícího příkazu:
apt show jetty9
Měli byste vidět následující výstup:
Package: jetty9 Version: 9.4.15-1 Priority: optional Section: java Maintainer: Debian Java Maintainers <[email protected]> Installed-Size: 757 kB
Dále spusťte službu Jetty a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start jetty9
systemctl enable jetty9
Stav Jetty můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status jetty9
Měli byste získat následující výstup:
? 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)
Nakonfigurujte Nginx jako reverzní proxy pro molo
Ve výchozím nastavení běží Jetty na portu 8080. Budete tedy muset nakonfigurovat Nginx jako reverzní proxy pro předávání požadavku z portu 80 na 8080.
Chcete-li to provést, nejprve nainstalujte webový server Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Dále vytvořte nový konfigurační soubor virtuálního hostitele pro Jetty pomocí následujícího příkazu:
nano /etc/nginx/sites-available/jetty.conf
Přidejte následující řádky:
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/; } }
Po dokončení uložte a zavřete soubor. Poté pomocí následujícího příkazu zkontrolujte Nginx, zda neobsahuje nějakou chybu syntaxe:
nginx -t
Měli byste vidět následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Dále povolte virtuálního hostitele Nginx a restartujte službu Nginx, aby se použila nová konfigurace:
ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Přístup k webovému rozhraní Jetty
Nyní otevřete webový prohlížeč a zadejte adresu URL http://example.com. Budete přesměrováni na výchozí řídicí panel Jetty na následující obrazovce:
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Jetty s Nginx na Debianu 10. Nyní můžete svou Java aplikaci snadno nasadit pomocí Jetty.