Wie installiere und konfiguriere ich WildFly (JBoss) unter Debian 11
Wildfly ist ein in Java geschriebener Anwendungsserver, der von RedHat entwickelt wurde. Es ist ein einfacher, schlanker und leistungsstarker Server mit einer CLI und einer Verwaltungskonsole. Er ist quelloffen, plattformübergreifend und basiert auf steckbaren Subsystemen, die je nach Bedarf hinzugefügt oder entfernt werden können. Er bietet alle notwendigen Funktionen, um eine Java-Webanwendung zu betreiben.
In diesem Lernprogramm zeige ich dir, wie du Wildfly mit Nginx als Reverse Proxy unter Debian 11 installierst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein Root-Passwort ist auf deinem Server konfiguriert.
Java JDK installieren
Wildfly ist eine Java-basierte Anwendung, daher muss Java auf deinem Server installiert sein. Wenn es nicht installiert ist, kannst du es mit folgendem Befehl installieren:
apt-get install default-jdk -y
Sobald Java installiert ist, kannst du es mit folgendem Befehl überprüfen:
java --version
Du solltest die Java-Version in der folgenden Ausgabe sehen:
openjdk 11.0.12 2021-07-20 OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2deb10u1) OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2deb10u1, mixed mode, sharing)
Wildfly installieren
Erstelle zunächst mit dem folgenden Befehl einen Benutzer und eine Gruppe, um die Wildfly-Anwendung auszuführen:
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 Befehl wget herunter:
wget https://github.com/wildfly/wildfly/releases/download/25.0.1.Final/wildfly-25.0.1.Final.zip
Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
unzip wildfly-25.0.1.Final.zip
Verschiebe das entpackte Verzeichnis mit folgendem Befehl in das Verzeichnis /opt:
mv wildfly-25.0.1.Final /opt/wildfly
Als Nächstes änderst du den Eigentümer des Verzeichnisses /opt/wildfly:
chown -RH wildfly:wildfly /opt/wildfly
Als Nächstes erstellst du mit folgendem Befehl ein Wildfly-Konfigurationsverzeichnis innerhalb von /etc:
mkdir -p /etc/wildfly
Als Nächstes kopierst du alle notwendigen Dateien aus dem Wildfly-Verzeichnis in das Verzeichnis /etc/wildfly:
cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/ cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/ cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
Setze als Nächstes die Ausführungsberechtigung für alle Shell-Skriptdateien:
chmod +x /opt/wildfly/bin/*.sh
Als Nächstes lädst du den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starte und aktiviere den Wildfly-Dienst mit dem folgenden Befehl:
systemctl start wildfly systemctl enable wildfly
Um den Status des Wildfly-Dienstes zu überprüfen, führe den folgenden Befehl aus:
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 Fri 2021-12-10 14:55:07 UTC; 6s ago Main PID: 20928 (launch.sh) Tasks: 59 (limit: 4701) Memory: 171.6M CGroup: /system.slice/wildfly.service ??20928 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0 ??20929 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 ??21022 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru Dec 10 14:55:07 debian11 systemd[1]: Started The WildFly Application Server.
Wildfly Admin-Konsole einschalten
In der Standardeinstellung ist die Wildfly-Administrationskonsole deaktiviert. Es wird empfohlen, sie zu aktivieren, um die Wildfly-Anwendung zu verwalten.
Du kannst sie aktivieren, indem du die Wildfly-Konfigurationsdatei bearbeitest:
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, bearbeite dann das Wildfly-Startskript und aktiviere die Verwaltungskonsole.
nano /opt/wildfly/bin/launch.sh
Ändere die Datei wie unten gezeigt:
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 systemd Datei:
nano /etc/systemd/system/wildfly.service
Ändere die folgende Zeile:
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 Konfigurationsänderungen zu übernehmen:
systemctl daemon-reload
Starte anschließend den Wildfly-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart wildfly
Du kannst den Status von Wildfly auch 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 Fri 2021-12-10 14:57:22 UTC; 3s ago Main PID: 21182 (launch.sh) Tasks: 64 (limit: 4701) Memory: 205.6M CGroup: /system.slice/wildfly.service ??21182 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 127.0.0.1 127.0.0.1 ??21183 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 127.0.0.1 -bmanagement 127.0.0.1 ??21282 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru Dec 10 14:57:22 debian11 systemd[1]: Started The WildFly Application Server.
Zu diesem Zeitpunkt ist Wildfly gestartet und lauscht auf den Ports 8080 und 9990. Du kannst sie mit dem folgenden Befehl überprüfen:
ss -plnt
Du erhältst die folgende Ausgabe:
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=678,fd=3)) LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("java",pid=21282,fd=485)) LISTEN 0 50 127.0.0.1:9990 0.0.0.0:* users:(("java",pid=21282,fd=487)) LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=12461,fd=21)) LISTEN 0 128 127.0.0.1:8080 0.0.0.0:* users:(("java",pid=21282,fd=476)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=678,fd=4))
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Wildfly Admin Benutzer erstellen
Als Nächstes musst du einen Admin-Benutzer anlegen, um auf die Wildfly-Administrationskonsole zuzugreifen. Du kannst ihn erstellen, indem du den folgenden Befehl ausführst:
sh /opt/wildfly/bin/add-user.sh
Du wirst aufgefordert, die Art des Benutzers auszuwählen:
What type of user do you wish to add? a) Management User (mgmt-users.properties) b) Application User (application-users.properties) (a): a
Gib a ein und drücke die Eingabetaste, um den Verwaltungsbenutzer hinzuzufügen. Du wirst aufgefordert, deinen Benutzernamen und dein Passwort wie unten gezeigt festzulegen:
Enter the details of the new user to add. Using realm 'ManagementRealm' as discovered from the existing property files. Username : hitesh 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 :
Gib deinen Benutzernamen und dein Passwort ein und drücke die Eingabetaste. Du wirst gefragt, ob du Benutzer zum Realm hinzufügen möchtest:
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 'hitesh' for realm 'ManagementRealm' Is this correct yes/no? yes
Gib Ja ein und drücke die Eingabetaste, um fortzufahren. Sobald der Benutzer hinzugefügt wurde, erhältst du die folgende Ausgabe:
Added user 'hitesh' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties' Added user 'hitesh' to file '/opt/wildfly/domain/configuration/mgmt-users.properties' Added user 'hitesh' with groups to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties' Added user 'hitesh' 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 Jakarta Enterprise Beans calls. yes/no? yes To represent the user add the following to the server-identities definition
Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Nginx als Reverse Proxy installieren und konfigurieren
Als Nächstes musst du Nginx als Reverse Proxy konfigurieren, damit du über Port 80 auf Wildfly zugreifen kannst.
Installiere zunächst das Nginx-Paket mit dem unten stehenden Befehl:
apt-get install nginx -y
Sobald Nginx installiert ist, erstellst du eine Nginx-Proxy-Datei mit dem folgenden Befehl:
nano /etc/nginx/conf.d/proxy_headers.conf
Füge die folgenden Zeilen ein:
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 Nginx-Konfigurationsdatei für den virtuellen Host von Wildfly:
nano /etc/nginx/conf.d/wildfly.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; server_name wildfly.yourdomain.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 und schließe die Datei und überprüfe Nginx mit folgendem Befehl auf Syntaxfehler:
nginx -t
Du solltest die folgende Ausgabe sehen:
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 Nginx-Status auch mit folgendem Befehl überprüfen:
systemctl status nginx
Du erhältst die folgende Ausgabe:
? 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 Fri 2021-12-10 15:12:26 UTC; 9s ago Docs: man:nginx(8) Process: 22115 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 22116 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 22117 (nginx) Tasks: 3 (limit: 4701) Memory: 3.8M CGroup: /system.slice/nginx.service ??22117 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??22118 nginx: worker process ??22119 nginx: worker process Dec 10 15:12:25 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Dec 10 15:12:26 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
Jetzt ist Nginx installiert und so konfiguriert, dass es Wildfly bedienen kann. Du kannst jetzt mit dem nächsten Schritt fortfahren.
Zugriff auf Wildfly Web UI
Öffne nun deinen Webbrowser und rufe die Wildfly-Anwendungsseite über die URL http://wildfly.yourdomain.com auf. Du solltest die Wildfly-Standardseite auf dem folgenden Bildschirm sehen:
Um auf die Wildfly-Administrationskonsole zuzugreifen, gib die URL http://wildfly.yourdomain.com/console/ in deinen Webbrowser ein. Du wirst aufgefordert, einen Admin-Benutzernamen und ein Passwort einzugeben (siehe unten):
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche “ Anmelden „. Sobald du eingeloggt bist, solltest du das Wildfly Admin-Dashboard sehen:
Fazit
Herzlichen Glückwunsch! Du hast Wildfly mit Nginx als Reverse Proxy unter Debian 11 erfolgreich installiert. Jetzt kannst du Wildfly nutzen, um deine Java-Anwendung im Internet zu hosten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.