WildFly est un environnement d'exécution d'application gratuit, open source et multiplateforme écrit en Java et développé par Red Hat qui vous permet de développer d'excellentes applications à partir d'un seul IDE. Il est léger, rapide, flexible et basé sur des sous-systèmes enfichables. Il fonctionne sur les systèmes 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 une exécution rapide et personnalisable, l'évolutivité, la configuration et la gestion unifiées, le chargement simultané, la liaison rapide, la gestion de domaine et bien d'autres.
Dans ce didacticiel, nous allons vous montrer les étapes pour installer Wildfly avec Nginx en tant que proxy inverse sur Debian 10.
Exigences
- Un serveur exécutant Debian 10.
- Un mot de passe root est configuré pour votre serveur.
Mise en route
Avant de commencer, vous devrez mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :
apt-get update -y
apt-get upgrade -y
Une fois votre serveur mis à jour, redémarrez votre serveur pour appliquer les modifications.
Installer Java
WildFly nécessite l'installation de Java version 8 sur votre serveur. Par défaut, Java 8 n'est pas disponible dans le référentiel par défaut de Debian 10. Vous devrez donc télécharger Java 8 depuis leur site officiel.
Après avoir téléchargé Java 8, extrayez 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écutez la commande suivante pour modifier la version Java par défaut :
update-alternatives --config java
Sélectionnez Java version 8 et appuyez sur Entrée. Vous devriez voir le résultat suivant :
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 Pressto 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érifiez la version de Java à l'aide de la commande suivante :
java -version
Vous devriez 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, vous devrez créer un utilisateur et un groupe pour Wildfly. Vous pouvez le créer avec la commande suivante :
groupadd -r wildfly
useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
Ensuite, téléchargez la dernière version de Wildfly avec 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é, extrayez le fichier téléchargé avec la commande suivante :
unzip wildfly-17.0.1.Final.zip
Ensuite, copiez le répertoire extrait dans /opt/ avec la commande suivante :
cp -r wildfly-17.0.1.Final /opt/wildfly
Ensuite, changez la propriété du répertoire wildfly en utilisateur wildfly comme indiqué ci-dessous :
chown -RH wildfly:wildfly /opt/wildfly
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Wildfly
Ensuite, vous devrez copier les fichiers nécessaires pour configurer WildFly.
Tout d'abord, copiez 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, copiez 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, donnez l'autorisation d'exécution au fichier launch.sh :
sh -c 'chmod +x /opt/wildfly/bin/*.sh'
Ensuite, copiez le fichier d'unité Wildfly systemd dans le répertoire /etc/systemd/system/ :
cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service WildFly et activez-le au démarrage avec la commande suivante :
systemctl start wildfly
systemctl enable wildfly
Vous pouvez maintenant vérifier l'état du service Wildfly avec la commande suivante :
systemctl status wildfly
Vous devriez 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, vous devrez créer un utilisateur administrateur pour Wildfly pour accéder à la console d'administration WildFly. Vous pouvez le créer avec la commande suivante :
/opt/wildfly/bin/add-user.sh
Vous devriez voir le résultat suivant :
What type of user do you wish to add? a) Management User (mgmt-users.properties) b) Application User (application-users.properties) (a): a
Tapez a et appuyez sur Entrée pour créer un utilisateur de gestion. Au cours du processus de création d'utilisateur, vous devrez 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer WildFly pour qu'il soit accessible depuis un système distant
Par défaut, Wildfly n'est accessible qu'à partir du système local. Vous devrez donc le configurer pour accéder à partir du système distant. Vous pouvez le faire en éditant le fichier /etc/wildfly/wildfly.conf :
nano /etc/wildfly/wildfly.conf
Ajoutez la ligne suivante à la fin du fichier :
WILDFLY_CONSOLE_BIND=0.0.0.0
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, ouvrez le fichier /opt/wildfly/bin/launch.sh comme indiqué ci-dessous :
nano /opt/wildfly/bin/launch.sh
Modifiez 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
Enregistrez et fermez le fichier. Ensuite, ouvrez le fichier /etc/systemd/system/wildfly.service.
nano /etc/systemd/system/wildfly.service
Modifiez 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
Enregistrez le fichier. Ensuite, créez le répertoire /var/run/wildfly et définissez les bonnes autorisations
mkdir /var/run/wildfly/
chown wildfly:wildfly /var/run/wildfly/
Enfin, rechargez le démon systemd et redémarrez le service Wildfly pour appliquer les modifications :
systemctl daemon-reload
systemctl restart wildfly
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à Wildfly
Wildfly est maintenant installé et configuré pour accéder à partir du système distant. Par défaut, la console de gestion Wildfly écoute sur le port 9990. Vous pouvez y accéder en visitant l'URL http://192.168.0.4:9990 . Vous serez redirigé vers la page suivante :
Maintenant, fournissez votre nom d'utilisateur et votre mot de passe d'administrateur, puis cliquez sur Signer dans bouton. Vous devriez voir la console de gestion Wildfly dans l'écran suivant :
Vous pouvez également accéder à l'application Wildfly en visitant l'URL http://192.168.0.4:8080 . Vous devriez voir la page suivante :
Configurer Nginx en tant que proxy inverse pour Wildfly
Ensuite, vous devrez configurer Nginx en tant que proxy inverse pour la demande de proxy provenant des ports 80 à 8080.
Tout d'abord, installez Nginx avec la commande suivante :
apt-get install nginx -y
Une fois Nginx installé, créez un nouveau fichier d'hôte virtuel pour Nginx avec la commande suivante :
nano /etc/nginx/sites-available/wildfly.conf
Ajoutez 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/; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez 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, activez l'hôte virtuel Nginx et redémarrez Nginx avec la commande suivante :
ln -s /etc/nginx/sites-available/wildfly.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Vous pouvez maintenant accéder à l'application Wildfly sans spécifier le port 8080.
C'est ça. Vous avez installé et configuré avec succès Wildfly avec Nginx en tant que proxy inverse sur Debian 10. N'hésitez pas à me demander si vous avez des questions.