Jetty adalah Java HTTP server free dan open-source yang dapat digunakan dalam berbagai proyek, baik dalam pengembangan maupun produksi.

Jetty memiliki jejak kecil dalam memori, dapat disematkan, berfitur lengkap, dan mendukung SPDY, WebSocket, OSGi, JNDI, JAAS, dan banyak integrasi lainnya. Jetty biasanya digunakan atau di integrasikan dengan satu atau beberapa produk aktif seperti Alfresco, Apache ActiveMQ, Apache Spark, Apache Maven, Red5 dan Hadoop.

Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menginstal Jetty di Debian 10.

Persyaratan Tutorial

Sebelum Mulai

Pertama, disarankan untuk memperbarui sistem Anda dengan versi terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo apt update && sudo apt upgrade -y

Setelah sistem Anda diperbarui, restart sistem Anda untuk menerapkan perubahan konfigurasi.

Instal Java

Jetty adalah aplikasi berbasis Java. Jadi, Anda perlu install Java ke sistem Anda. Secara default, versi terbaru Java tersedia di repositori default Debian 10. Anda dapat menginstalnya dengan menjalankan perintah berikut:

apt-get install default-jdk -y

Setelah instalasi selesai, Anda dapat memeriksa versi Java dengan perintah berikut:

java --version

Anda akan mendapatkan output berikut:

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)

Install Jetty

Secara default, Jetty tersedia di repositori default Debian 10. Anda dapat menginstalnya dengan menjalankan perintah berikut:

apt-get install jetty9 -y

Setelah diinstal, periksa versi Jetty dengan perintah :

apt show jetty9

Anda akan melihat output berikut:

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

Selanjutnya, start layanan Jetty dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start jetty9
 systemctl enable jetty9:

Anda juga dapat memeriksa status Jetty menggunakan perintah :

systemctl status jetty9

Anda akan mendapatkan output kurang lebih seperti berikut :

? 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 UTC; 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)

Konfigurasi Nginx sebagai reverse proxy untuk Jetty

Secara default, Jetty berjalan pada port 8080. Jadi Anda perlu mengkonfigurasi Nginx sebagai reverse proxy untuk meneruskan permintaan dari port 80 ke 8080.

Untuk melakukannya, instal web server Nginx dengan perintah berikut:

apt-get install nginx -y

Selanjutnya, buat file konfigurasi virtual host baru untuk Jetty dengan perintah berikut:

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

Tambahkan baris berikut:

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

Simpan dan tutup file setelah Anda selesai. Kemudian, periksa Nginx untuk setiap kesalahan sintaks dengan perintah berikut:

nginx -t

Anda akan melihat output berikut:

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

Selanjutnya, aktifkan virtual host Nginx dengan membuat symlink ke sites-enabled dan restart Nginx service untuk menerapkan konfigurasi baru:

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

Akses Jetty Web Interface

Sekarang, buka web browser dan ketik URL http://example.com. Anda akan diarahkan ke dasbor default Jetty di layar berikut:

Konfigurasi Jetty JAVA http Server di Debian 10

Selamat! Anda telah berhasil menginstal dan mengkonfigurasi Jetty dengan Nginx pada Debian 10. Sekarang Anda dapat dengan mudah menggunakan aplikasi Java Anda dengan Jetty.