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
- Server yang menjalankan Debian 10.
- Masuk sebagai root atau user dengan hak sudo
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:
Selamat! Anda telah berhasil menginstal dan mengkonfigurasi Jetty dengan Nginx pada Debian 10. Sekarang Anda dapat dengan mudah menggunakan aplikasi Java Anda dengan Jetty.