WildFly adalah aplikasi runtime free, open-source, dan cross-platform yang ditulis dalam Java dan dikembangkan oleh Red Hat yang memungkinkan Anda mengembangkan aplikasi hebat hanya dari satu IDE.

WildFly terkenal ringan, cepat, fleksibel, dan didasarkan pada subsistem pluggable. Ini berjalan pada sistem operasi Windows dan Linux dan bertujuan untuk menyediakan pengguna dengan lingkungan runtime Java yang cepat dan stabil. Wildfly hadir dengan beragam fitur termasuk, Cepat, Runtime yang Dapat Disesuaikan, Skalabilitas, Konfigurasi & Manajemen Terpadu, Pemuatan Serentak, Tautan Cepat, Manajemen Domain, dan banyak lagi lainnya.

Dalam tutorial ini, kami akan menunjukkan kepada Anda langkah-langkah untuk install Wildfly dengan Nginx sebagai reverse proxy di Debian 10.

Persyaratan

Langkah awal

Perbarui paket sistem operasi Anda (software). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan terbaru dan perbaikan keamanan untuk paket perangkat lunak default sistem operasi Anda:

sudo apt update && sudo apt upgrade -y

Setelah server Anda diperbarui, mulai ulang server Anda untuk menerapkan perubahan.

Instal Java di Debian 10

WildFly membutuhkan Java versi 8 untuk diinstal di server Anda. Secara default, Java 8 tidak tersedia di repositori default Debian 10. Jadi, Anda perlu download Java 8 dari situs web resmi.

Setelah download Java 8, buat direktori /usr/lib/jvm ekstrak source Java ke direktori tersebut dengan perintah berikut:

mkdir /usr/lib/jvm/
 tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/

Selanjutnya, jalankan perintah berikut untuk mengubah versi  default Java:

update-alternatives --config java

Pilih Java versi 8 dan tekan Enter. Anda akan melihat output berikut:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
  2            /usr/lib/jvm/jdk1.8.0_221/bin/java            1         manual mode

Press  to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/jdk1.8.0_221/bin/java to provide /usr/bin/java (java) in manual mode

Selanjutnya, periksa versi Java menggunakan perintah berikut:

java -version

Anda akan mendapatkan output seperti 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 Wildfly

Pertama, Anda harus membuat user dan group untuk Wildfly. Anda dapat membuatnya dengan perintah groupadd seperti berikut:

groupadd -r wildfly
 useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly

Selanjutnya, download versi terbaru Wildfly dengan perintah wget :

wget https://download.jboss.org/wildfly/17.0.1.Final/wildfly-17.0.1.Final.zip

Setelah download selesai, unzip file yang diunduh dengan perintah berikut:

unzip wildfly-17.0.1.Final.zip

Selanjutnya copy file dan direktori yang telah di unzip ke direktori /opt/.

cp -r wildfly-17.0.1.Final /opt/wildfly

Selanjutnya, ubah kepemilikan direktori wildfly menjadi user wildfly seperti yang ditunjukkan di bawah ini:

chown -RH wildfly:wildfly /opt/wildfly

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi Wildfly di Debian 10

Untuk memulai konfigurasi Wildfly, salin file yang diperlukan untuk mengkonfigurasi WildFly.

Pertama, salin file konfigurasi WildFly ke direktori /etc/wildfly:

mkdir /etc/wildfly
 cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Langkah berikutnya salin file launch.sh ke direktori /opt/wildfly/bin/ dengan perintah berikut:

cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

Selanjutnya, beri izin eksekusi untuk meluncurkan file .sh:

sh -c 'chmod +x /opt/wildfly/bin/*.sh'

Selanjutnya, salin Wildfly systemd unit file ke direktori /etc/systemd/system/ :

cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/

Selanjutnya, reload systemd daemon dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, start layanan WildFly dan aktifkan untuk memulai saat boot dengan perintah berikut:

systemctl start wildfly
 systemctl enable wildfly

Anda sekarang dapat memeriksa status layanan Wildfly dengan perintah berikut:

systemctl status wildfly

Anda akan mendapatkan output berikut:

? wildfly.service - The WildFly Application Server
   Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-09-10 00:19:27 EDT; 1s ago
 Main PID: 1142 (launch.sh)
    Tasks: 7 (limit: 1138)
   Memory: 24.7M
   CGroup: /system.slice/wildfly.service
           ??1142 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
           ??1143 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
           ??1200 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -

Sep 10 00:19:27 debian systemd[1]: Started The WildFly Application Server.

Konfigurasi Otentikasi WildFly

Selanjutnya, Anda perlu membuat user administrator untuk mengakses konsol admin WildFly. Anda dapat membuatnya dengan perintah berikut:

/opt/wildfly/bin/add-user.sh

Anda akan melihat output berikut:

What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a): a

Ketik a dan tekan Enter untuk membuat Management user. Selama proses pembuatan user, Anda harus memberikan nama pengguna, kata sandi, dan nama grup seperti yang ditunjukkan di bawah ini:

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : wildflyadmin
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : 
Re-enter Password : 
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]: 
About to add user 'wildflyadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'wildflyadmin' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'wildflyadmin' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'wildflyadmin' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'wildflyadmin' with groups  to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process? 
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition 

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasikan WildFly untuk Remote Akses

Secara default, Wildfly hanya dapat diakses dari sistem lokal. Jadi, Anda perlu mengkonfigurasinya untuk mengakses dari sistem jarak jauh. Anda dapat melakukannya dengan mengedit file /etc/wildfly/wildfly.conf:

nano /etc/wildfly/wildfly.conf

Tambahkan baris berikut di akhir file:

WILDFLY_CONSOLE_BIND=0.0.0.0

Simpan dan tutup file ketika Anda selesai. Kemudian, buka file /opt/wildfly/bin/launch.sh seperti yang ditunjukkan di bawah ini:

nano /opt/wildfly/bin/launch.sh

Ubah file seperti yang ditunjukkan di bawah ini:

if [ "x$WILDFLY_HOME" = "x" ]; then
    WILDFLY_HOME="/opt/wildfly"
fi

if [[ "$1" == "domain" ]]; then
    $WILDFLY_HOME/bin/domain.sh -c $2 -b $3 -bmanagement $4
else
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
fi

Simpan dan tutup file. Kemudian, buka file /etc/systemd/system/wildfly.service.

nano /etc/systemd/system/wildfly.service

Ubah file seperti yang ditunjukkan di bawah ini:

[Unit]
Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service

[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

Simpan file dan buat direktori  /var/run/wildfly serta berikan izin yang tepat.

mkdir /var/run/wildfly/
 chown wildfly:wildfly /var/run/wildfly/

Terakhir, restart systemd daemon dan layanan Wildfly untuk menerapkan perubahan:

systemctl daemon-reload
 systemctl restart wildfly

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Akses Web Interface Wildfly

Wildfly sekarang diinstal dan dikonfigurasi untuk mengakses dari sistem jarak jauh. Secara default, Wildfly management console listening pada port 9990. Anda dapat mengaksesnya dengan mengunjungi URL http://192.168.0.4:9990. Anda akan diarahkan ke halaman berikut:

Page 1 - Sign into Wildfly

Sekarang, berikan nama pengguna dan kata sandi admin Anda, dan klik tombol Sign in. Anda akan melihat konsol manajemen Wildfly di layar berikut:

Page 2 - HAL Management Console

Anda juga dapat mengakses aplikasi Wildfly dengan mengunjungi URL http://192.168.0.4:8080. Anda akan melihat halaman berikut:

Page 3 - Welcome to WildFly

Konfigurasi Nginx sebagai Reverse proxy untuk Wildfly

Selanjutnya, Anda perlu mengkonfigurasi Nginx sebagai proxy terbalik ke permintaan proxy yang dilakukan pada port 80 hingga 8080.

Pertama, instal Nginx dengan perintah berikut:

apt-get install nginx -y

Setelah Nginx diinstal, buat file server block baru untuk Nginx dengan perintah berikut:

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

Tambahkan baris berikut:

upstream wildfly {
  server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     192.168.0.4;

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

Simpan dan tutup file setelah Anda selesai. Kemudian, periksa Nginx untuk setiap 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 dengan melakukan symlink dari sites-available ke sites-enabled dan restart Nginx dengan perintah berikut:

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

Anda sekarang dapat mengakses aplikasi Wildfly tanpa menentukan port 8080.

Selamat!!!. Anda telah berhasil install dan konfigurasi Wildfly dengan Nginx sebagai reverse proxy pada Debian 10.