Wie man WildFly mit Nginx als Reverse-Proxy unter Debian 10 installiert

WildFly ist eine freie, quelloffene und plattformübergreifende Anwendungslaufzeit, die in Java geschrieben und von Red Hat entwickelt wurde und es Ihnen ermöglicht, großartige Anwendungen aus einer einzigen IDE heraus zu entwickeln. Es ist leicht, schnell, flexibel und basiert auf steckbaren Subsystemen. Es läuft auf den Betriebssystemen Windows und Linux und zielt darauf ab, den Benutzern eine schnelle und stabile Java-Laufzeitumgebung zur Verfügung zu stellen. Wildfly wird mit einer Vielzahl von Funktionen geliefert, darunter: Schnelle, anpassbare Laufzeit, Skalierbarkeit, einheitliche Konfiguration und Verwaltung, gleichzeitiges Laden, schnelle Verlinkung, Domänenverwaltung und viele andere.

In diesem Tutorial zeigen wir Ihnen die Schritte zur Installation von Wildfly mit Nginx als Reverse-Proxy unter Debian 10.

Anforderungen

  • Ein Server, auf dem Debian 10 läuft.
  • Ein Root-Passwort wird auf Ihrem Server eingerichtet.

Erste Schritte

Bevor Sie beginnen, müssen Sie Ihr System mit der neuesten Version aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

apt-get update -y
 apt-get upgrade -y

Sobald Ihr Server aktualisiert ist, starten Sie Ihren Server neu, um die Änderungen zu übernehmen.

Java installieren

WildFly erfordert die Installation von Java Version 8 auf Ihrem Server. Standardmäßig ist Java 8 nicht im Standard-Repository von Debian 10 verfügbar. Sie müssen also Java 8 von ihrer offiziellen Website herunterladen.

Nach dem Herunterladen von Java 8 extrahieren Sie den Java-Quellcode mit dem folgenden Befehl in das Verzeichnis /usr/lib/jvm:

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

Führen Sie als nächstes den folgenden Befehl aus, um die Standard-Java-Version zu ändern:

update-alternatives --config java

Wählen Sie Java Version 8 und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:

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

Überprüfen Sie als nächstes die Java-Version mit dem folgenden Befehl:

java -version

Sie sollten die folgende Ausgabe erhalten:

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)

Wildfly installieren

Zunächst müssen Sie einen Benutzer und eine Gruppe für Wildfly erstellen. Sie können sie mit dem folgenden Befehl erstellen:

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

Laden Sie als nächstes die neueste Version von Wildfly mit dem folgenden Befehl herunter:

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

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

unzip wildfly-17.0.1.Final.zip

Als nächstes kopieren Sie das extrahierte Verzeichnis nach /opt/ mit dem folgenden Befehl:

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

Ändern Sie als nächstes die Eigentumsverhältnisse des Verzeichnisses wildfly auf wildfly user, wie unten gezeigt:

chown -RH wildfly:wildfly /opt/wildfly

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Wildfly

Als nächstes müssen Sie die notwendigen Dateien kopieren, um WildFly zu konfigurieren.

Kopieren Sie zunächst die WildFly-Konfigurationsdatei in das Verzeichnis /etc/wildfly:

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

Als nächstes kopieren Sie die Datei launch.sh mit dem folgenden Befehl in das Verzeichnis /opt/wildfly/bin/:

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

Geben Sie als nächstes die Ausführungserlaubnis für die Datei launch.sh:

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

Als nächstes kopieren Sie die Datei Wildfly systemd unit nach /etc/systemd/system/:

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

Als nächstes laden Sie den systemdämon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als nächstes den WildFly-Dienst und aktivieren Sie ihn mit dem folgenden Befehl, um ihn zur Boot-Zeit zu starten:

systemctl start wildfly
 systemctl enable wildfly

Sie können nun den Status des Wildfly-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status wildfly

Sie sollten die folgende Ausgabe erhalten:

? 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.

Konfigurieren der WildFly-Authentifizierung

Als nächstes müssen Sie einen Administrator-Benutzer für Wildfly erstellen, um auf die WildFly-Verwaltungskonsole zugreifen zu können. Sie können sie mit dem folgenden Befehl erstellen:

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

Sie sollten die folgende Ausgabe sehen:

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

Geben Sie a ein und drücken Sie die Eingabetaste, um einen Verwaltungsbenutzer anzulegen. Während des Erstellungsprozesses des Benutzers müssen Sie Benutzername, Passwort und Gruppenname wie unten gezeigt angeben:

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 

Danach können Sie mit dem nächsten Schritt fortfahren.

WildFly für den Zugriff von einem entfernten System aus konfigurieren

Standardmäßig ist Wildfly nur über das lokale System zugänglich. Sie müssen es also für den Zugriff vom entfernten System aus konfigurieren. Sie können es tun, indem Sie die Datei /etc/wildfly/wildfly.conf bearbeiten:

nano /etc/wildfly/wildfly.conf

Fügen Sie die folgende Zeile am Ende der Datei hinzu:

WILDFLY_CONSOLE_BIND=0.0.0.0

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Öffnen Sie dann die Datei /opt/wildfly/bin/launch.sh wie unten gezeigt:

nano /opt/wildfly/bin/launch.sh

Ändern Sie die Datei wie unten gezeigt:

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

Speichern und schließen Sie die Datei. Öffnen Sie dann die Datei /etc/systemd/system/wildfly.service.

nano /etc/systemd/system/wildfly.service

Ändern Sie die Datei wie unten gezeigt:

[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

Speichern Sie die Datei. Erstellen Sie dann das Verzeichnis /var/run/wildfly und setzen Sie die richtigen Berechtigungen

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

Laden Sie schließlich den Systemdämon neu und starten Sie den Wildfly-Dienst neu, um die Änderungen zu übernehmen:

systemctl daemon-reload
 systemctl restart wildfly

Danach können Sie mit dem nächsten Schritt fortfahren.

Zugang zur Wildfliege

Wildfly ist jetzt installiert und für den Zugriff vom entfernten System aus konfiguriert. Standardmäßig hört die Wildfly-Verwaltungskonsole auf Port 9990. Sie können auf sie zugreifen, indem Sie die URL http://192.168.0.4:9990 besuchen. Sie werden auf die folgende Seite weitergeleitet:

Bei Wildfly anmelden

Geben Sie nun Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Im folgenden Bildschirm sollten Sie die Wildfly-Verwaltungskonsole sehen:

HAL-Verwaltungskonsole

Sie können die Wildfly-Anwendung auch über die URL http://192.168.0.4:8080 aufrufen. Sie sollten die folgende Seite sehen:

Willkommen bei WildFly

Konfigurieren Sie Nginx als Reverse-Proxy für Wildfly

Als Nächstes müssen Sie Nginx als Reverse-Proxy für Proxy-Anfragen konfigurieren, die über Port 80 bis 8080 kommen.

Installieren Sie zunächst Nginx mit dem folgenden Befehl:

apt-get install nginx -y

Nachdem Nginx installiert wurde, erstellen Sie eine neue virtuelle Hostdatei für Nginx mit dem folgenden Befehl:

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

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf einen Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

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

Aktivieren Sie dann den virtuellen Host Nginx und starten Sie Nginx mit dem folgenden Befehl neu:

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

Sie können jetzt auf die Anwendung Wildfly zugreifen, ohne den Port 8080 anzugeben.

Das war’s. Sie haben Wildfly mit Nginx als Reverse-Proxy unter Debian 10 erfolgreich installiert und konfiguriert. Wenn Sie Fragen haben, können Sie mich gerne fragen.

Das könnte Dich auch interessieren …