GlassFish adalah server aplikasi sumber terbuka yang digunakan untuk menyebarkan aplikasi Java. Ini mendukung berbagai teknologi berbasis Java termasuk, JPA, JavaServer Faces, JMS, RMI, serta banyak teknologi berbasis Java lainnya. Ini menyediakan berbasis web serta antarmuka baris perintah untuk mengelola aplikasi Java dan komponennya. GlassFish memungkinkan Anda membuat aplikasi portabel dan skalabel yang dapat dengan mudah diintegrasikan dengan teknologi lama.
Dalam tutorial ini, saya akan menunjukkan cara menginstal server Glassfish dengan Nginx sebagai proxy terbalik di Debian 11.
Prasyarat
- Server yang menjalankan Debian 11.
- Nama domain valid yang ditunjukkan dengan IP server Anda.
- Kata sandi root dikonfigurasi di server.
Instal Java
Glassfish adalah perangkat lunak aplikasi berbasis java sehingga Java harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut:
apt-get install default-jdk unzip -y
Setelah Java diinstal, Anda dapat memverifikasi instalasi Java menggunakan perintah berikut:
java --version
Anda akan mendapatkan output berikut:
openjdk 11.0.13 2021-10-19 OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1) OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Unduh Glassfish
Pertama, Anda perlu mengunduh Glassfish versi terbaru dari situs web Eclipse. Anda dapat mengunduhnya menggunakan perintah wget seperti yang ditunjukkan di bawah ini:
wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zip
Setelah unduhan selesai, ekstrak file yang diunduh ke direktori /opt:
unzip glassfish-6.1.0.zip -d /opt/
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Buat File Layanan Systemd untuk Glassfish
Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan Glassfish. Anda dapat membuatnya menggunakan perintah berikut:
nano /usr/lib/systemd/system/glassfish.service
Tambahkan baris berikut:
[Unit] Description = GlassFish Server v6.1.0 After = syslog.target network.target [Service] User = root ExecStart = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain ExecStop = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar stop-domain ExecReload = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar restart-domain Type = forking [Install] WantedBy = multi-user.target
Simpan dan tutup file setelah Anda selesai. Kemudian, muat ulang daemon systemd untuk menerapkan perubahan.
systemctl daemon-reload
Selanjutnya, mulai layanan Glassfish dan aktifkan untuk memulai saat reboot sistem:
systemctl start glassfish
systemctl enable glassfish
Anda juga dapat memverifikasi layanan Glassfish menggunakan perintah berikut:
systemctl status glassfish
Anda akan mendapatkan output berikut:
? glassfish.service - GlassFish Server v6.1.0 Loaded: loaded (/lib/systemd/system/glassfish.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-07 04:56:16 UTC; 8s ago Process: 6018 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=exited, status=0/SUC> Main PID: 6037 (java) Tasks: 91 (limit: 4679) Memory: 343.0M CPU: 13.299s CGroup: /system.slice/glassfish.service ??6037 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /opt/glassfish6/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOp> Nov 07 04:56:10 debian11 systemd[1]: Starting GlassFish Server v6.1.0... Nov 07 04:56:16 debian11 java[6018]: Waiting for domain1 to start ..... Nov 07 04:56:16 debian11 java[6018]: Successfully started the domain : domain1 Nov 07 04:56:16 debian11 java[6018]: domain Location: /opt/glassfish6/glassfish/domains/domain1 Nov 07 04:56:16 debian11 java[6018]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log Nov 07 04:56:16 debian11 java[6018]: Admin Port: 4848 Nov 07 04:56:16 debian11 java[6018]: Command start-domain executed successfully. Nov 07 04:56:16 debian11 systemd[1]: Started GlassFish Server v6.1.0.
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Setel Sandi Admin Glassfish
Secara default, Glassfish dapat diakses tanpa kata sandi apa pun. Jadi ada baiknya untuk mengamankannya dengan mengatur kata sandi admin. Anda dapat melakukannya dengan menjalankan perintah berikut:
/opt/glassfish6/bin/asadmin --port 4848 change-admin-password
Anda akan diminta untuk memberikan nama pengguna admin seperti yang ditunjukkan di bawah ini:
Enter admin user name [default: admin]>admin
Berikan nama pengguna admin default dan tekan tombol Enter. Anda akan diminta untuk memberikan kata sandi admin yang ada:
Enter the admin password>
Cukup tekan tombol Enter. Anda akan diminta untuk mengatur kata sandi admin baru seperti yang ditunjukkan di bawah ini:
Tetapkan kata sandi aman Anda dan tekan Enter. Anda akan mendapatkan output berikut:
Command change-admin-password executed successfully.
Selanjutnya, disarankan juga untuk mengaktifkan HTTPS di Glassfish. Anda dapat melakukannya dengan menjalankan perintah berikut:
/opt/glassfish6/bin/asadmin --port 4848 enable-secure-admin
Anda akan diminta untuk memberikan nama pengguna dan kata sandi admin Anda untuk mengaktifkan HTTPS:
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.
Terakhir, mulai ulang layanan Glassfish untuk menerapkan perubahan:
systemctl restart glassfish
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Mengakses Antarmuka Web GlassFish
Pada titik ini, Glassfish diinstal dan dijalankan. Secara default, antarmuka web Glassfish mendengarkan pada port 8080 sementara antarmuka admin mendengarkan pada port 4848 . Pertama, akses antarmuka web Glassfish menggunakan URL http://your-server-ip:8080 . Anda akan melihat halaman berikut:
Selanjutnya, akses antarmuka admin Glassfish menggunakan URL https://your-server-ip:4848 . Anda akan diarahkan ke halaman login Glassfish:
Berikan nama pengguna, kata sandi admin Anda, dan klik Masuk tombol. Anda akan melihat antarmuka admin Glassfish di halaman berikut:
Klik server di panel kiri, Anda akan melihat layar berikut:
Dari sini, Anda dapat memulai ulang, menghentikan, dan melihat log Glassfish.
Klik Node di panel kiri, Anda akan melihat informasi node Glassfish di layar berikut:
Konfigurasikan Nginx sebagai Proxy Terbalik untuk Glassfish
Sebaiknya konfigurasikan Nginx sebagai proxy terbalik untuk mengakses antarmuka web Glassfish. Jadi Anda dapat mengakses aplikasi Anda tanpa menggunakan port 8080 .
Untuk melakukannya, pertama-tama instal paket Nginx dengan perintah berikut:
apt-get install nginx -y
Setelah terinstal, buat file konfigurasi virtual host Nginx menggunakan perintah di bawah ini:
nano /etc/nginx/conf.d/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 glassfish.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 verifikasi Nginx untuk kesalahan sintaks menggunakan perintah berikut:
nginx -t
Jika semuanya baik-baik saja, 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, restart layanan Nginx untuk menerapkan perubahan:
systemctl restart nginx
Anda juga dapat memeriksa status Nginx dengan perintah berikut:
systemctl status nginx
Anda akan mendapatkan output berikut:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-07 05:02:58 UTC; 22s ago Docs: man:nginx(8) Process: 6790 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6791 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6873 (nginx) Tasks: 3 (limit: 4679) Memory: 5.1M CPU: 53ms CGroup: /system.slice/nginx.service ??6873 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??6875 nginx: worker process ??6876 nginx: worker process Nov 07 05:02:58 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Nov 07 05:02:58 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
Pada titik ini, Nginx diinstal dan dikonfigurasi untuk melayani antarmuka web Glassfish. Anda sekarang dapat mengakses antarmuka web Glassfish menggunakan URL http://glassfish.example.com .
Kesimpulan
Selamat! Anda telah berhasil menginstal server Glassfish dengan Nginx sebagai proxy terbalik di Debian 11. Sekarang Anda dapat mulai menerapkan aplikasi berbasis Java di server Glassfish. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.