Búsqueda de sitios web

Cómo instalar y configurar WildFly (JBoss) en Debian 11


Este tutorial existe para estas versiones del sistema operativo

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

En esta página

  1. Requisitos previos
  2. Instalar Java JDK
  3. Instalar Wildfly
  4. Habilitar la consola de administración de Wildfly
  5. Crear usuario administrador de Wildfly
  6. Instalar y configurar Nginx como proxy inverso
  7. Acceder a la interfaz de usuario web de Wildfly
  8. Conclusión

Wildfly es un servidor de aplicaciones escrito en Java y desarrollado por RedHat. Es un servidor simple, liviano y poderoso con una CLI y una consola de administración. Es de código abierto, multiplataforma y se basa en subsistemas conectables que se pueden agregar o quitar según sea necesario. Proporciona todas las funciones necesarias para ejecutar una aplicación web Java.

En este tutorial, le mostraré cómo instalar Wildfly con Nginx como proxy inverso en Debian 11.

requisitos previos

  • Un servidor que ejecuta Debian 11.
  • Un nombre de dominio válido apuntado con la IP de su servidor.
  • Se configura una contraseña raíz en su servidor.

Instalar Java JDK

Wildfly es una aplicación basada en Java, por lo que Java debe estar instalado en su servidor. Si no está instalado, puede instalarlo ejecutando el siguiente comando:

apt-get install default-jdk -y

Una vez que Java está instalado, puede verificarlo usando el siguiente comando:

java --version

Debería ver la versión de Java en el siguiente resultado:

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)

Instalar Wildfly

Primero, cree un usuario y un grupo para ejecutar la aplicación Wildfly usando el siguiente comando:

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

A continuación, descargue la última versión de Wildfly con el comando wget:

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

Una vez que se complete la descarga, descomprima el archivo descargado con el siguiente comando:

unzip wildfly-25.0.1.Final.zip

A continuación, mueva el directorio extraído a /opt usando el siguiente comando:

mv wildfly-25.0.1.Final /opt/wildfly

A continuación, cambie la propiedad del directorio /opt/wildfly:

chown -RH wildfly:wildfly /opt/wildfly

Luego, cree un directorio de configuración de Wildfly dentro de /etc usando el siguiente comando:

mkdir -p /etc/wildfly

A continuación, copie todos los archivos necesarios del directorio Wildfly al directorio /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/

A continuación, establezca el permiso de ejecución para todos los archivos de script de shell:

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

A continuación, vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie y habilite el servicio Wildfly con el siguiente comando:

systemctl start wildfly
systemctl enable wildfly

Para verificar el estado del servicio Wildfly, ejecute el siguiente comando:

systemctl status wildfly

Obtendrá el siguiente resultado:

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

Habilitar la consola de administración de Wildfly

De forma predeterminada, la consola de administración de Wildfly está deshabilitada. Se recomienda habilitarlo para administrar la aplicación Wildfly.

Puede habilitarlo editando el archivo de configuración de Wildfly:

nano /etc/wildfly/wildfly.conf

Cambia las siguientes líneas:

WILDFLY_BIND=127.0.0.1
WILDFLY_CONSOLE_BIND=127.0.0.1

Guarde y cierre el archivo, luego edite el script del iniciador de Wildfly y habilite la consola de administración.

nano /opt/wildfly/bin/launch.sh

Cambie el archivo como se muestra a continuación:

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

Guarde y cierre el archivo y luego edite el archivo systemd de Wildfly:

nano /etc/systemd/system/wildfly.service

Cambie la siguiente línea:

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

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd para aplicar los cambios de configuración:

systemctl daemon-reload

A continuación, reinicie el servicio Wildfly para aplicar los cambios:

systemctl restart wildfly

También puede verificar el estado de Wildfly con el siguiente comando:

systemctl status wildfly

Obtendrá el siguiente resultado:

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

En este punto, Wildfly se inicia y escucha en los puertos 8080 y 9990. Puede verificarlos con el siguiente comando:

ss -plnt

Obtendrá el siguiente resultado:

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))            

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear usuario administrador de Wildfly

A continuación, también deberá crear un usuario administrador para acceder a la consola de administración de Wildfly. Puede crearlo ejecutando el siguiente comando:

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

Se le pedirá que elija los tipos de usuario:

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

Escriba a y presione la tecla Intro para agregar el usuario de administración. Se le pedirá que defina su nombre de usuario y contraseña como se muestra a continuación:

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 : 

Proporcione su nombre de usuario, contraseña y presione Entrar. Se le pedirá que agregue usuarios al reino:

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

Escriba sí y presione la tecla Intro para continuar. Una vez que se agrega el usuario, obtendrá el siguiente resultado:

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 

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar y configurar Nginx como proxy inverso

A continuación, deberá configurar Nginx como un proxy inverso para acceder a Wildfly a través del puerto 80.

Primero, instale el paquete Nginx usando el siguiente comando:

apt-get install nginx -y

Una vez que Nginx esté instalado, cree un archivo proxy Nginx con el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo, luego cree un archivo de configuración de host virtual Nginx para Wildfly:

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

Agregue las siguientes líneas:

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

}

Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de sintaxis usando el siguiente comando:

nginx -t

Debería ver el siguiente resultado:

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

Finalmente, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

También puede verificar el estado de Nginx usando el siguiente comando:

systemctl status nginx

Obtendrá el siguiente resultado:

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

En este punto, Nginx está instalado y configurado para servir a Wildfly. Ahora puede continuar con el siguiente paso.

Acceder a la interfaz de usuario web de Wildfly

Ahora, abra su navegador web y acceda a la página de la aplicación Wildfly usando la URL http://wildfly.sudominio.com. Debería ver la página predeterminada de Wildfly en la siguiente pantalla:

Para acceder a la consola de administración de Wildfly, escriba la URL http://wildfly.yourdomain.com/console/ en su navegador web. Se le pedirá que proporcione un nombre de usuario y contraseña de administrador como se muestra a continuación:

Proporcione su nombre de usuario y contraseña de administrador y haga clic en el botón Iniciar sesión. Una vez que haya iniciado sesión, debería ver el panel de administración de Wildfly:

Conclusión

¡Felicidades! ha instalado correctamente Wildfly con Nginx como proxy inverso en Debian 11. Ahora puede utilizar Wildfly para alojar su aplicación Java en Internet. No dude en preguntarme si tiene alguna pregunta.

Artículos relacionados: