WildFly Java Applicatie Server met Nginx Reverse Proxy installeren op Ubuntu 20.04

WildFly of voorheen bekend als JBoss AS is een lichtgewicht implementatie van de JEE (Java Enterprise Edition) container. De flexibele applicatie runtime is geschreven in Java en helpt je fantastische applicaties te bouwen.

WildFly is een multi-platform applicatie runtime die draait op Linux, macOS, en Windows besturingssystemen. Het werd gemaakt door JBoss Inc, en werd in 2006 overgenomen door RedHat en werd WildFly.

In deze handleiding laten we je zien hoe je WildFly kunt installeren op de nieuwste Ubuntu 20.04. We installeren de nieuwste versie van WildFly 20, schakelen de admin console voor WildFly in, maken de WildFly admin gebruiker aan, en stellen Nginx in als reverse proxy voor WildFly.

Vereisten

Voor deze gids zullen we WildFly installeren op de nieuwste Ubuntu Server 20.04 FocalFossa met 2 GB RAM, 50 GB vrije schijfruimte, en 2 CPUs.

Wat zullen we doen?

  • Installeer Java OpenJDK 11
  • Voeg nieuwe gebruiker toe en download WildFly
  • WildFly basis configuratie
  • Schakel WildFly Admin Console in
  • Stel een Admin Gebruiker in voor WildFly
  • Stel Nginx in als omgekeerde proxy voor WildFly
  • Testen van

Stap 1 – Installeer Java OpenJDK

Eerst installeren we de Java OpenJDK op de Ubuntu server 20.04. En we zullen de Java OpenJDK 11 gebruiken voor onze WildFly installatie, dat is de standaard versie van Java pakketten op de Ubuntu 20.04 repository.

Werk alle pakketten repository bij en installeer Java OpenJDK met het onderstaande apt commando.

sudo apt update
sudo apt install default-jdk

Als alle installatie voltooid is, controleer dan de Java versie met het volgende commando.

java -version

Hieronder staat het resultaat dat je krijgt.

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Het resultaat is dat de installatie van Java OpenJDK op Ubuntu 20.04 voltooid is.

Stap 2 – Nieuwe gebruiker toevoegen en WildFly downloaden

In deze stap maken we een nieuwe systeemgebruiker en groep ‘wildfly’ aan en downloaden de broncode van wildfly naar de ‘/opt/wildfly’ directory.

Maak nu een nieuwe gebruiker en groep aan met de naam ‘wildfly’ met de onderstaande commando’s.

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

Ga vervolgens naar de ‘/opt’ directory en download de wildfly broncode met het wget commando zoals hieronder.

cd /opt/
wget -q wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz

De wildfly broncode is gedownload.

Pak nu de wildfly broncode uit en hernoem de uitgepakte directory naar ‘wildfly’.

tar -xf wildfly-20.0.1.Final.tar.gz
mv wildfly-20.0.1.Final wildfly

Verander daarna het eigendom van de ‘wildfly’ directory in de ‘wildfly’ gebruiker en groep.

chown -RH wildfly:wildfly /opt/wildfly

Het resultaat is dat de wildfly installatie directory in de ‘/opt/wildfly’ directory staat. De wildfly dienst zal draaien onder de nieuwe gebruiker met de naam ‘wildfly’ die we zojuist bovenaan aanmaakten.

Maak een nieuwe gebruiker aan en download WildFly Broncode

Stap 3 – WildFly basisconfiguratie

Na het downloaden van de wildfly broncode, gaan we de wildfly instellen op het Ubuntu systeem.

Maak een nieuwe configuratiedirectory ‘/etc/wildfly’ en kopieer de voorbeeldconfiguratie ‘wildfly.conf’ er naar toe.

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

Kopieer vervolgens het service bestand ‘wildfly.service’ naar de ‘/etc/systemd/system’ directory.

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

Kopieer daarna het voorbeeld van het wildfly lanceerscript naar de ‘/opt/wildfly/bin’ directory en maak het uitvoerbaar.

cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
chmod +x /opt/wildfly/bin/*.sh

Herlaad nu de systemd manager om het nieuwe ‘wildfly.service’ bestand toe te passen.

systemctl daemon-reload

Start de wildfly service en voeg hem toe aan het opstarten van het systeem.

systemctl start wildfly
systemctl enable wildfly

De wildfly service is op het Ubuntu systeem in werking met de standaard configuratie.

WildFly Basis Configuratie

Controleer de wildfly service met het volgende commando.

ss -plnt
systemctl status wildfly

En je krijgt het resultaat zoals hieronder.

Start WildFly als een Systemd dienst

WildFly Controlepoort

Zoals te zien is, draait de wildfly als een systemd dienst op de standaard TCP poort ‘8080’ op het Ubuntu systeem.

Stap 4 – Schakel WildFly Admin Console in

In deze stap stellen we een wildfly in om te draaien op het lokale IP adres ‘127.0.0.1’ en schakelen we zijn admin console in. We bewerken de wildfly configuratie ‘wildfly.conf’, het wildfly start script ‘launch.sh’, en het wildfly service bestand ‘wildfly.service’.

Bewerk de wildfly configuratie ‘/etc/wildfly/wildfly.conf’ met vim editor.

vim /etc/wildfly/wildfly.conf

Verander nu de waarde van ‘WILDFLY_BIND’ met het lokale IP adres ‘127.0.0.1’.

WILDFLY_BIND=127.0.0.1

Om de wildfly admin console in te schakelen, voeg je hieronder de instelling ‘WILDFLY_CONSOLE_BIND’ toe.

WILDFLY_CONSOLE_BIND=127.0.0.1

Bewaar en sluit.

Bewerk vervolgens het launch start script voor wildfly ‘/opt/wildfly/bin/launch.sh’ met behulp van vim editor.

vim /opt/wildfly/bin/launch.sh

Voeg op de regels‘domain.sh‘ en‘standalone.sh‘ een extra optie toe om de wildfly admin console in te schakelen zoals hieronder.

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

Opslaan en sluiten.

Bewerk vervolgens het standaard service bestand voor wildfly ‘/etc/systemd/system/wildfly.service’ met een vim editor.

vim /etc/systemd/system/wildfly.service

Op de‘ExecStart=/opt/wildfly/bin/launch.sh….‘ regel voeg je de optie‘$WILDFLY_CONSOLE_BIND‘ toe zoals hieronder.

ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND

Sla op en sluit af.

Herlaad nu de systemd manager en herstart de wildfly dienst.

systemctl daemon-reload
systemctl restart wildfly

WildFly Enable Admin Console

De wildfly dienst draait met de admin console ingeschakeld, controleer dat met het onderstaande commando.

ss -plnt
systemctl status wildfly

Hieronder staat het resultaat dat je krijgt.

WildFly Check Port en Service

Het resultaat is dat de wildfly draait op het lokale IP adres‘127.0.0.1‘ met de standaard TCP poort‘8080‘, en dat de wildfly admin console ingeschakeld is op TCP poort‘9990‘.

Stap 5 – Stel de admin gebruiker WildFly in

In deze stap maken we een nieuwe gebruiker aan voor het beheer van wildfly met het door wildfly geleverde script ‘add-user.sh’.

Voer het wildfly ‘add-user.sh’ script uit zoals hieronder.

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

Typ voor het type gebruiker‘a‘ om de Management gebruiker aan te maken (admin voor het beheren van wildfly).

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

Typ nu je gebruikersnaam en wachtwoord, en let op dat je het veilige wachtwoord gebruikt.

Enter the details of the new user to add.
Using the realm 'ManagementRealm' as discovered from the existing property files.
Username : hakase
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 :

Voor de groep van de nieuwe gebruiker druk je gewoon op‘Enter‘ om verder te gaan.

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:

Typ vervolgens‘yes‘ om je gebruiker toe te voegen aan de‘ManagementRealm‘ op wildfly.

About to add user 'hakase' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'hakase' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'hakase' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'hakase' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'hakase' with groups  to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'

Typ‘yes‘ om je gebruiker in te schakelen als proces voor het beheer van de master-slave host controller van wildfly.

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 <secret value="YXNoN2RhNjVzZyMkJQ==" />

Het resultaat is dat de admin en management gebruiker voor wildfly is aangemaakt.

Stap 6 – Stel Nginx in als omgekeerde proxy voor WildFly

In deze stap installeren en configureren we Nginx als omgekeerde proxy voor de wildfly op het Ubuntu systeem.

Installeer Nginx pakketten met het onderstaande apt commando.

sudo apt install nginx -y

Als alle installaties klaar zijn, ga je naar de ‘/etc/nginx/’ configuratiemap.

cd /etc/nginx/

Maak een nieuw bestand ‘proxy_headers.conf’ onder de ‘/etc/nginx/conf.d’ directory met behulp van vim editor.

vim conf.d/proxy_headers.conf

Plak er de volgende configuratie in.

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
add_header Cache-Control no-cache;

Bewaar en sluit.

Maak vervolgens een nieuwe virtuele host configuratie voor wildfly onder de ‘/etc/nginx/sites-available’ directory.

vim sites-available/wildfly

Verander het IP adres met je eigen en plak de configuratie erin.

server {
  listen          80;
  server_name     SERVER-IP;

  location / {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:8080;
  }

  location /management {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990/management;
  }

  location /console {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990/console;
  }

  location /logout {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990/logout;
  }

  location /error {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990;
  }

}

Bewaar en sluit.

Activeer nu de wildfly virtuele host en controleer de Nginx configuratie.

ln -s /etc/nginx/sites-available/wildfly /etc/nginx/sites-enabled/
nginx -t

Controleer nu of er geen fout optreedt en start dan de Nginx dienst opnieuw.

systemctl restart nginx

Het resultaat is dat de Nginx installatie en configuratie s een reverse proxy voor wildfly voltooid is.

stel Nginx in als omgekeerde proxy voor WildFly

Stap 7 – Testen

Open je webbrowser en typ het IP adres van je server in de adresbalk.

http://192.168.1.50/

Nu krijg je de wildfly standaard index pagina zoals hieronder.

WildFly Standaard Index

Ga vervolgens naar de wildfly admin console op het URL pad ‘/console’ zoals hieronder.

http://192.168.1.50/console/

Log in met je wildfly admin gebruiker en wachtwoord.

WildFly Inloggen Admin

Nu krijg je het wildfly admin dashboard zoals hieronder.

WildFly Admin Console Dashboard

Als resultaat is de installatie van wildfly met Nginx reverse proxy op Ubuntu 20.04 Server met succes voltooid.