Comment installer WildFly avec Nginx comme proxy inverse sur Debian 10

WildFly est un runtime d’application gratuit, open-source et multiplateforme écrit en Java et développé par Red Hat qui te permet de développer de grandes applications à partir d’un seul IDE. Il est léger, rapide, flexible et basé sur des sous-systèmes pluggables. Il fonctionne sur le système d’exploitation Windows et Linux et vise à fournir aux utilisateurs un environnement d’exécution Java rapide et stable. Wildfly est livré avec un riche ensemble de fonctionnalités, notamment un moteur d’exécution rapide et personnalisable, l’évolutivité, la configuration et la gestion unifiées, le chargement simultané, la liaison rapide, la gestion des domaines et bien d’autres encore.

Dans ce tutoriel, nous allons te montrer les étapes à suivre pour installer Wildfly avec Nginx comme proxy inverse sur Debian 10.

Exigences

  • Un serveur fonctionnant sous Debian 10.
  • Un mot de passe root est configuré sur ton serveur.

Pour commencer

Avant de commencer, tu dois mettre à jour ton système avec la dernière version. Tu peux le faire en exécutant la commande suivante :

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

Une fois que ton serveur est mis à jour, redémarre ton serveur pour appliquer les changements.

Installer Java

WildFly exige que la version 8 de Java soit installée sur ton serveur. Par défaut, Java 8 n’est pas disponible dans le référentiel par défaut de Debian 10. Tu devras donc télécharger Java 8 sur son site officiel.

Après avoir téléchargé Java 8, extrais la source Java dans le répertoire /usr/lib/jvm avec la commande suivante :

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

Ensuite, exécute la commande suivante pour modifier la version par défaut de Java :

update-alternatives --config java

Sélectionne la version 8 de Java et appuie sur Entrée. Tu devrais voir la sortie suivante :

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

Ensuite, vérifie la version de Java à l’aide de la commande suivante :

java -version

Tu devrais obtenir le résultat suivant :

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)

Installer Wildfly

Tout d’abord, tu dois créer un utilisateur et un groupe pour Wildfly. Tu peux les créer à l’aide de la commande suivante :

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

Ensuite, télécharge la dernière version de Wildfly à l’aide de la commande suivante :

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

Une fois le téléchargement terminé, extrais le fichier téléchargé avec la commande suivante :

unzip wildfly-17.0.1.Final.zip

Ensuite, copie le répertoire extrait dans /opt/ avec la commande suivante :

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

Ensuite, change la propriété du répertoire wildfly en utilisateur wildfly comme indiqué ci-dessous :

chown -RH wildfly:wildfly /opt/wildfly

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer Wildfly

Ensuite, tu devras copier les fichiers nécessaires pour configurer WildFly.

Tout d’abord, copie le fichier de configuration de WildFly dans le répertoire /etc/wildfly :

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

Ensuite, copie le fichier launch.sh dans le répertoire /opt/wildfly/bin/ avec la commande suivante :

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

Ensuite, donne la permission d’exécution au fichier launch.sh :

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

Ensuite, copie le fichier Wildfly systemd unit dans le répertoire /etc/systemd/system/ :

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

Ensuite, recharge le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service WildFly et active-le pour qu’il démarre au moment du démarrage avec la commande suivante :

systemctl start wildfly
systemctl enable wildfly

Tu peux maintenant vérifier l’état du service Wildfly avec la commande suivante :

systemctl status wildfly

Tu devrais obtenir le résultat suivant :

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

Configurer l’authentification WildFly

Ensuite, tu devras créer un utilisateur administrateur pour Wildfly afin d’accéder à la console d’administration WildFly. Tu peux le créer avec la commande suivante :

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

Tu devrais voir la sortie suivante :

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

Saisis a et appuie sur Entrée pour créer un utilisateur administrateur. Pendant le processus de création de l’utilisateur, tu devras fournir un nom d’utilisateur, un mot de passe et un nom de groupe comme indiqué ci-dessous :

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 

Une fois que tu l’as fait, tu peux passer à l’étape suivante.

Configurer WildFly pour qu’il soit accessible depuis un système distant

Par défaut, Wildfly n’est accessible que depuis le système local. Tu devras donc le configurer pour qu’il soit accessible depuis le système distant. Tu peux le faire en modifiant le fichier /etc/wildfly/wildfly.conf :

nano /etc/wildfly/wildfly.conf

Ajoute la ligne suivante à la fin du fichier :

WILDFLY_CONSOLE_BIND=0.0.0.0

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, ouvre le fichier /opt/wildfly/bin/launch.sh comme indiqué ci-dessous :

nano /opt/wildfly/bin/launch.sh

Modifie le fichier comme indiqué ci-dessous :

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

Sauvegarde et ferme le fichier. Ensuite, ouvre le fichier /etc/systemd/system/wildfly.service.

nano /etc/systemd/system/wildfly.service

Modifie le fichier comme indiqué ci-dessous :

[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

Enregistre le fichier. Ensuite, crée le répertoire /var/run/wildfly et définis les permissions correctes

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

Enfin, recharge le démon systemd et redémarre le service Wildfly pour appliquer les modifications :

systemctl daemon-reload
systemctl restart wildfly

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède à Wildfly

Wildfly est maintenant installé et configuré pour être accessible depuis le système distant. Par défaut, la console de gestion Wildfly écoute sur le port 9990. Tu peux y accéder en visitant l’URL http://192.168.0.4:9990. Tu seras redirigé vers la page suivante :

Connecte-toi à Wildfly

Maintenant, indique ton nom d’utilisateur et ton mot de passe d’administrateur, et clique sur le bouton Se connecter. Tu devrais voir la console de gestion Wildfly dans l’écran suivant :

HAL Management Console

Tu peux aussi accéder à l’application Wildfly en visitant l’URL http://192.168.0.4:8080. Tu devrais voir la page suivante :

Bienvenue à WildFly

Configurer Nginx en tant que Reverse Proxy pour Wildfly

Ensuite, tu devras configurer Nginx en tant que proxy inverse afin d’acheminer les demandes provenant du port 80 vers 8080.

Tout d’abord, installe Nginx avec la commande suivante :

apt-get install nginx -y

Une fois que Nginx a été installé, crée un nouveau fichier d’hôte virtuel pour Nginx avec la commande suivante :

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

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais obtenir le résultat suivant :

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

Ensuite, active l’hôte virtuel Nginx et redémarre Nginx avec la commande suivante :

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

Tu peux maintenant accéder à l’application Wildfly sans spécifier le port 8080.

C’est terminé. Tu as installé et configuré avec succès Wildfly avec Nginx comme proxy inverse sur Debian 10. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...