GlassFish adalah implementasi Java Platform open-source dan pertama di dunia yang dikembangkan oleh Eclipse Foundation. Ini adalah server aplikasi yang ringan dan mendukung berbagai teknologi berbasis Java seperti Enterprise JavaBeans, JPA, JavaServer Faces, JMS, dan banyak lagi. GlassFish hadir dengan konsol administrasi yang sederhana dan mudah digunakan dengan alat pembaruan untuk pembaruan dan komponen tambahan.
Dalam tutorial ini, kami akan menjelaskan cara menginstal GlassFish di Debian 10 dengan Nginx sebagai reverse proxy.
Persyaratan
- Server yang menjalankan Debian 10.
- Kata sandi root disiapkan untuk server Anda.
Memulai
Sebelum memulai, Anda perlu memperbarui sistem Anda dengan versi terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
apt-get update -y
apt-get upgrade -y
Setelah server Anda diperbarui, mulai ulang server Anda untuk menerapkan perubahan.
Menginstal Java
GlassFish membutuhkan Java versi 8 untuk diinstal di server Anda. Jadi, Anda perlu menghapus Java jika Anda memiliki versi Java lain yang terinstal di sistem Anda.
Anda dapat menghapus Java versi 11 dengan perintah berikut:
apt-get remove openjdk-11-jre-headless
Selanjutnya, Anda perlu mengunduh Java versi 8 dari situs web resmi mereka. Setelah unduhan selesai, ekstrak file yang diunduh ke direktori /usr/lib/jvm dengan perintah berikut:
mkdir /usr/lib/jvm/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/
Selanjutnya, atur versi Java default dengan perintah berikut:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_221/bin/java 1
Anda akan mendapatkan output berikut:
update-alternatives: using /usr/lib/jvm/jdk1.8.0_221/bin/java to provide /usr/bin/java (java) in auto mode
Anda sekarang dapat memeriksa versi java dengan perintah berikut:
java -version
Anda akan melihat output berikut:
java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
Instal GlassFish
Pertama, instal paket yang diperlukan dengan perintah berikut:
apt-get install wget unzip -y
Selanjutnya, unduh GlassFish versi terbaru dengan perintah berikut:
wget http://download.oracle.com/glassfish/5.0.1/nightly/latest-glassfish.zip
Setelah unduhan selesai, ekstrak file yang diunduh ke direktori /opt menggunakan perintah berikut:
unzip latest-glassfish.zip -d /opt/
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Buat Layanan GlassFish
Selanjutnya, Anda dapat membuat file layanan systemd untuk mengelola layanan GlassFish. Anda dapat membuatnya dengan perintah berikut:
nano /etc/systemd/system/glassfish.service
Tambahkan konten berikut:
[Unit] Description = GlassFish Server v5.0 After = syslog.target network.target [Service] ExecStart=/opt/glassfish5/bin/asadmin start-domain ExecReload=/opt/glassfish5/bin/asadmin restart-domain ExecStop=/opt/glassfish5/bin/asadmin stop-domain Type = forking [Install] WantedBy = multi-user.target
Simpan dan tutup file. Kemudian, muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai layanan GlassFish dan aktifkan untuk memulai saat boot dengan perintah berikut:
systemctl start glassfish
systemctl enable glassfish
Anda sekarang dapat memeriksa status layanan GlassFish dengan perintah berikut:
systemctl status glassfish
Anda akan mendapatkan output berikut:
? glassfish.service - GlassFish Server v5.0 Loaded: loaded (/etc/systemd/system/glassfish.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-09-19 04:54:25 EDT; 42s ago Process: 15205 ExecStart=/opt/glassfish5/bin/asadmin start-domain (code=exited, status=0/SUCCESS) Main PID: 15217 (java) Tasks: 90 (limit: 1138) Memory: 271.7M CGroup: /system.slice/glassfish.service ??15217 /usr/lib/jvm/jdk1.8.0_221/bin/java -cp /opt/glassfish5/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOptions -XX:Ne Sep 19 04:53:42 debian systemd[1]: Starting GlassFish Server v5.0... Sep 19 04:54:24 debian asadmin[15205]: Waiting for domain1 to start ................................. Sep 19 04:54:24 debian asadmin[15205]: Successfully started the domain : domain1 Sep 19 04:54:24 debian asadmin[15205]: domain Location: /opt/glassfish5/glassfish/domains/domain1 Sep 19 04:54:24 debian asadmin[15205]: Log File: /opt/glassfish5/glassfish/domains/domain1/logs/server.log Sep 19 04:54:24 debian asadmin[15205]: Admin Port: 4848 Sep 19 04:54:24 debian asadmin[15205]: Command start-domain executed successfully. Sep 19 04:54:25 debian systemd[1]: Started GlassFish Server v5.0. lines 1-18/18 (END)
Aktifkan Konsol Admin GlassFish
Secara default, kata sandi konsol admin GlassFish tidak disetel. Jadi, Anda perlu memperbarui kata sandi admin.
Jalankan perintah berikut untuk mengatur kata sandi admin:
/opt/glassfish5/bin/asadmin change-admin-password
Berikan kata sandi yang Anda inginkan dan tekan Enter. Setelah kata sandi ditetapkan, Anda akan melihat output berikut:
Enter admin user name [default: admin]>admin Enter the admin password> Enter the new admin password> Enter the new admin password again> Command change-admin-password executed successfully.
Selanjutnya, Anda harus mengaktifkan fitur admin aman. Anda dapat melakukannya dengan perintah berikut:
/opt/glassfish5/bin/asadmin enable-secure-admin
Berikan nama pengguna dan kata sandi admin Anda, dan tekan Enter untuk mengaktifkan admin aman seperti yang ditunjukkan di bawah ini:
Enter admin user name> admin Enter admin password for user "admin"> You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.
Selanjutnya, restart layanan GlassFish untuk menerapkan perubahan konfigurasi:
systemctl restart glassfish
Akses GlassFish
Secara default, aplikasi GlassFish berjalan pada port 8080. Anda dapat mengaksesnya dengan mengunjungi URL http://your-server-ip:8080. Anda akan melihat halaman berikut:
Konsol admin GlassFish berjalan pada port 4848. Anda dapat mengaksesnya dengan mengunjungi URL http://your-server-ip:4848. Anda akan melihat halaman login GlassFish:
Berikan nama pengguna dan sandi admin Anda, lalu klik Login tombol. Anda akan melihat konsol admin GlassFish di layar berikut:
Menerapkan Aplikasi di GlassFish
GlassFish sekarang terinstal dan dikonfigurasi, saatnya untuk menerapkan aplikasi sampel di GlassFish.
Pertama, download aplikasi hello.war dengan perintah berikut:
wget https://github.com/dmatej/Glassfish/raw/master/v2/www/downloads/quickstart/hello.war
Selanjutnya, deploy aplikasi hello.war dengan perintah berikut:
/opt/glassfish5/bin/asadmin deploy hello.war
Anda akan melihat output berikut:
Version: V3 Subject: CN=localhost, OU=GlassFish, O=Oracle Corporation, L=Santa Clara, ST=California, C=US Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11 Key: Sun RSA public key, 2048 bits modulus: 26796330640308027923768800042502020134808966576745098232029910481655545436468207928921434907495986430069072245547607053010428717755932187048623252153613041636091429700133899537566912806297788375081359516836091002133743138757261794690981737280330851500902934286405305506594303276580413684625941149729611614458782091187522283499926880436357851913036137048969953439207474630152049712806975982901461106170366207997764866053158318707816771263261147284707875045634066423002500565550480728681743613266266732299458152358213914375115269066441015633123820868476095174900081535873996509058837674720310526766610294764426209317187 public exponent: 65537 Validity: [From: Tue Jan 15 21:17:50 EST 2019, To: Fri Jan 12 21:17:50 EST 2029] Issuer: CN=localhost, OU=GlassFish, O=Oracle Corporation, L=Santa Clara, ST=California, C=US SerialNumber: [ 3347569f] Certificate Extensions: 1 [1]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: F2 F1 22 14 40 CA 9E 1D 92 3B B6 B9 09 D1 27 E7 .."[email protected];....'. 0010: 50 1A 37 4D P.7M ] ] ] Algorithm: [SHA256withRSA] Signature: 0000: C7 CB 91 D4 9B 39 21 13 B3 48 87 09 85 2E DF B7 .....9!..H...... 0010: F9 E7 52 1B 39 D0 12 55 97 A8 02 8D B9 EC 26 F0 ..R.9..U......&. 0020: A6 8F 29 5B 96 80 71 AA CB C8 EA 83 4F 18 E7 19 ..)[..q.....O... 0030: 26 CF BF 72 B1 E6 23 53 F2 14 CD BA 68 FE 4B 4C &..r..#S....h.KL 0040: BB B1 3E DE D9 EB 6D 96 8C 8F 0D 33 B6 E7 28 F1 ..>...m....3..(. 0050: D5 40 6B BC 01 FF F9 5A 79 9A 96 DA D9 2A 84 99 [email protected]*.. 0060: FA 3A 7A 9D 52 6C C2 D5 E9 DC 98 8B 20 EF 69 99 .:z.Rl...... .i. 0070: E6 FC 1B 0F CA B2 0C 66 BE BB A7 EA 3D DB BB F5 .......f....=... 0080: 88 F1 B4 B1 15 74 FA 9F E0 9A 98 C5 12 A0 60 B4 .....t........`. 0090: 9B 92 19 FD BA 81 20 7F 51 83 E9 22 56 96 9A 40 ...... .Q.."[email protected] 00A0: 2C 27 BB 86 57 7D 2E E9 C5 98 1A 04 A2 C5 FC 17 ,'..W........... 00B0: 6E 8B 31 79 29 A0 A1 22 1A 31 C0 A6 96 7A D4 80 n.1y)..".1...z.. 00C0: 3F 05 26 BB DE D1 2D 74 01 1F 24 EC CE 3B 97 42 ?.&...-t..$..;.B 00D0: 16 E8 16 F1 A4 10 92 0B 8E A5 18 59 BF AA 69 B0 ...........Y..i. 00E0: DB C8 C2 66 5F 5D 2F 3D 4B C7 90 1D C2 24 B1 57 ...f_]/=K....$.W 00F0: 22 02 DA 76 FF 2E B7 C5 E4 E6 50 BD 73 36 AA 8A "..v......P.s6.. ] Do you trust the above certificate [y|N] -->y Enter admin user name> admin Enter admin password for user "admin"> Application deployed with name hello. Command deploy executed successfully.
Untuk mengakses aplikasi Anda, buka browser web Anda dan ketik URL http://your-server-ip:8080/hello. Anda akan diarahkan ke halaman berikut:
Konfigurasikan Nginx sebagai Proxy Terbalik
Sekarang, Anda perlu mengonfigurasi Nginx sebagai proxy terbalik ke permintaan proxy yang berasal dari port 80 hingga 8080.
Pertama, instal Nginx dengan perintah berikut:
apt-get install nginx -y
Setelah nginx diinstal, buat file virtual host Nginx untuk GlassFish dengan perintah berikut:
nano /etc/nginx/sites-available/glassfish.conf
Tambahkan baris berikut:
upstream glassfish { 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_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://glassfish/hello/; } }
Simpan dan tutup file. Kemudian, periksa Nginx apakah ada kesalahan sintaks dengan perintah berikut:
nginx -t
Anda akan mendapatkan 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 dan restart layanan Nginx dengan perintah berikut:
ln -s /etc/nginx/sites-available/glassfish.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Sekarang, Anda dapat mengakses aplikasi Anda dengan mengunjungi URL http://example.com.
Selamat! Anda telah berhasil menginstal GlassFish dengan Nginx sebagai proxy terbalik di Debian 10. Sekarang Anda dapat menerapkan aplikasi berbasis Java apa pun di server Anda dengan mudah.