Wie installiere ich WildFly Java Application Server mit Nginx auf Ubuntu 22.04

Wildfly ist eine einfache, leichtgewichtige und flexible Laufzeitumgebung für die Entwicklung von Java-Anwendungen. Er ist in Java geschrieben und kann auf den Betriebssystemen Linux, macOS und Windows ausgeführt werden. Es ist ein vollwertiger Anwendungsserver für Unternehmen, der alle notwendigen Funktionen für den Betrieb einer Java-Webanwendung bietet.

Merkmale

  • Kostenlos und Open-Source
  • Modular und leichtgewichtig.
  • Spart Ressourcen durch effiziente Verwaltung.
  • Zeitersparnis durch schnellere Entwicklung.

Diese Anleitung zeigt dir, wie du Wildfly mit Nginx als Reverse Proxy auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein gültiger Domainname ist auf die IP deines Servers verweist.
  • Ein Root-Passwort ist auf deinem Server konfiguriert.

Aktualisiere das System

Zuerst musst du alle Systempakete auf die aktuelle Version aktualisieren. Du kannst alle Pakete mit folgendem Befehl aktualisieren.

apt update -y
apt upgrade -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Java JDK installieren

Wildfly ist eine Java-basierte Anwendung. Daher musst du Java auf deinem Server installieren. Du kannst Java JDK mit dem folgenden Befehl installieren.

apt install default-jdk -y

Sobald Java installiert ist, kannst du die Java-Version mit dem folgenden Befehl überprüfen.

java --version

Du solltest die Java-Version in der folgenden Ausgabe sehen.

openjdk 11.0.17 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)

Wildfly herunterladen und installieren

Bevor du beginnst, musst du einen Benutzer und eine Gruppe für Wildfly erstellen. Beides kannst du mit dem folgenden Befehl erstellen.

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

Als Nächstes lädst du die neueste Version von Wildfly mit dem folgenden Befehl herunter.

wget https://github.com/wildfly/wildfly/releases/download/26.1.3.Final/wildfly-26.1.3.Final.zip

Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl.

unzip wildfly-26.1.3.Final.zip

Verschiebe das entpackte Wildfly-Verzeichnis in das Verzeichnis /opt.

mv wildfly-26.1.3.Final /opt/wildfly

Ändere die Besitzverhältnisse des Wildfly-Verzeichnisses mit dem folgenden Befehl.

chown -RH wildfly: /opt/wildfly

Danach kannst du mit der Konfiguration von Wildfly fortfahren.

Wildfly konfigurieren

Erstelle zunächst ein Wildfly-Konfigurationsverzeichnis mit dem folgenden Befehl.

mkdir -p /etc/wildfly

Als nächstes kopierst du die Wildfly-Konfigurationsdatei in das Verzeichnis /etc/wildfly.

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

Als nächstes kopierst du die Wildfly-Dienstdatei in das systemd-Verzeichnis.

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

Als nächstes kopierst du die Datei Wildfly launch.sh in das Verzeichnis /opt/wildfly/bin/.

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

Setze die Ausführungserlaubnis für die Skriptdatei.

chmod +x /opt/wildfly/bin/*.sh

Dann lädst du den systemd-Daemon neu, um die Änderungen zu übernehmen.

systemctl daemon-reload

Starte nun den wildfly-Dienst und füge ihn zum Systemstart hinzu.

systemctl start wildfly
systemctl enable wildfly

Du kannst nun den Status von Wildfly mit dem folgenden Befehl überprüfen.

systemctl status wildfly

Du erhältst die folgende Ausgabe.

? wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-02-15 09:34:24 UTC; 4s ago
   Main PID: 20425 (launch.sh)
      Tasks: 61 (limit: 4579)
     Memory: 111.6M
        CPU: 6.919s
     CGroup: /system.slice/wildfly.service
             ??20425 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ??20426 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             ??20534 java "-D[Standalone]" -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stac>

Feb 15 09:34:24 ubuntu2204 systemd[1]: Started The WildFly Application Server.

Standardmäßig lauscht Wildfly auf den Ports 8080 und 9990. Du kannst sie mit dem folgenden Befehl überprüfen.

ss -antpl | grep -i java

Du solltest die folgende Ausgabe sehen.

LISTEN 0      4096         0.0.0.0:8443      0.0.0.0:*    users:(("java",pid=20534,fd=498))                                                                
LISTEN 0      50         127.0.0.1:9990      0.0.0.0:*    users:(("java",pid=20534,fd=497))                                                                
LISTEN 0      4096         0.0.0.0:8080      0.0.0.0:*    users:(("java",pid=20534,fd=495))                                                                

Wildfly Admin-Konsole konfigurieren

In der Standardeinstellung ist die Wildfly-Administrationskonsole deaktiviert. Du musst sie also aktivieren, um über den Webbrowser auf Wildfly zugreifen zu können.

Bearbeite zunächst die Wildfly-Konfigurationsdatei mit dem folgenden Befehl.

nano /etc/wildfly/wildfly.conf

Ändere die folgenden Zeilen.

WILDFLY_BIND=127.0.0.1
WILDFLY_CONSOLE_BIND=127.0.0.1

Speichere und schließe die Datei, wenn du fertig bist. Bearbeite dann die Datei launch.sh mit dem folgenden Befehl.

nano /opt/wildfly/bin/launch.sh

Ändere die folgenden Zeilen:

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

Speichere und schließe die Datei und bearbeite dann die Wildfly-Dienstdatei.

nano /etc/systemd/system/wildfly.service

Ändere die folgende Zeile ab.

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

Speichere und schließe die Datei und lade den systemd-Daemon neu, um die Änderungen zu übernehmen.

systemctl daemon-reload

Starte nun den Wildfly-Dienst neu, um die Änderungen zu übernehmen.

systemctl restart wildfly

Wildfly-Verwaltungsbenutzer hinzufügen

Als Nächstes musst du einen Admin-Benutzer hinzufügen, um auf die Wildfly-Administrationskonsole zugreifen zu können. Du kannst ihn mit dem folgenden Befehl hinzufügen.

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

Du wirst nach der Art des Benutzers gefragt, den du hinzufügen möchtest:

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

Gib die Details deines neuen Benutzers ein (siehe unten):

Using the realm 'ManagementRealm' as discovered from the existing property files.
Username : wadmin
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 :

Du wirst gefragt, zu welcher Gruppe dieser Benutzer gehören soll:

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

Drücke einfach die Eingabetaste. Du solltest die folgende Ausgabe sehen.

About to add user 'wadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'wadmin' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'wadmin' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'wadmin' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'wadmin' 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 

Nginx für Wildfly konfigurieren

Jetzt ist Wildfly installiert und so konfiguriert, dass es auf localhost läuft. Jetzt musst du Nginx als Reverse Proxy konfigurieren, um auf die Wildfly-Weboberfläche zuzugreifen.

Installiere zunächst das Nginx-Paket mit dem folgenden Befehl.

apt install nginx -y

Als nächstes erstellst du eine Konfigurationsdatei proxy_headers.

nano /etc/nginx/conf.d/proxy_headers.conf

Füge die folgenden Konfigurationen hinzu:

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

Speichere und schließe die Datei und erstelle dann eine neue Konfigurationsdatei für den virtuellen Host.

nano /etc/nginx/conf.d/wildfly.conf

Füge die folgenden Konfigurationen hinzu.

server {
  listen          80;
  server_name     wildfly.example.com;

  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;
  }

}

Speichere die Datei und überprüfe Nginx auf eventuelle Syntax-Konfigurationsfehler.

nginx -t

Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen.

systemctl restart nginx

Du kannst den Status des Nginx-Dienstes mit dem folgenden Befehl überprüfen.

systemctl status nginx

Du solltest die folgende Ausgabe sehen.

? 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 Wed 2023-02-15 09:38:18 UTC; 1s ago
       Docs: man:nginx(8)
    Process: 21027 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 21028 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 21029 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.4M
        CPU: 62ms
     CGroup: /system.slice/nginx.service
             ??21029 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??21030 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??21031 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Feb 15 09:38:18 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 15 09:38:18 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Zugriff auf das Wildfly Admin Interface

Öffne nun deinen Webbrowser und rufe die Wildfly-Administrationsoberfläche unter der URL http://wildfly.example.com/console auf. Du wirst aufgefordert, deine Wildfly-Admin-Daten einzugeben (siehe unten):

WildFly Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke dann auf die Schaltfläche Anmelden. Auf dem folgenden Bildschirm solltest du das Wildfly-Dashboard sehen.

WildFly Dashboard

Du kannst die Wildfly-Standardseite auch über die URL http://wildfly.example.com aufrufen . Du solltest den folgenden Bildschirm sehen.

WildFly java application server

Fazit

Herzlichen Glückwunsch! Du hast Wildfly mit Nginx als Reverse Proxy erfolgreich auf dem Ubuntu 22.04 Server installiert. Jetzt kannst du damit beginnen, eine tolle Anwendung mit der Wildfly-Plattform zu erstellen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …