Cómo instalar el servidor de aplicaciones Java WildFly con el proxy inverso Nginx en Ubuntu 20.04

WildFly o anteriormente conocido como JBoss AS es una implementación ligera del contenedor JEE (Java Enterprise Edition). Su flexible tiempo de ejecución de aplicaciones está escrito en Java y te ayuda a crear fantásticas aplicaciones.

WildFly es un tiempo de ejecución de aplicaciones multiplataforma que funciona en los sistemas operativos Linux, macOS y Windows. Fue creado por JBoss Inc, y en 2006 fue adquirido por RedHat y se convirtió en WildFly.

En este tutorial, te mostraremos cómo instalar WildFly en la última versión de Ubuntu 20.04. Instalaremos la última versión de WildFly 20, habilitaremos la consola de administración para WildFly, crearemos el usuario administrador de WildFly y configuraremos Nginx como proxy inverso para WildFly.

Requisitos previos

Para esta guía, instalaremos WildFly en el último servidor Ubuntu 20.04 FocalFossa con 2 GB de RAM, 50 GB de espacio libre en disco y 2 CPU.

¿Qué haremos?

  • Instalar Java OpenJDK 11
  • Añadir un nuevo usuario y descargar WildFly
  • Configuración básica de WildFly
  • Habilitar la consola de administración de WildFly
  • Configurar el usuario administrador de WildFly
  • Configurar Nginx como proxy inverso para WildFly
  • Prueba de

Paso 1 – Instalar Java OpenJDK

En primer lugar, instalaremos el Java OpenJDK en el servidor Ubuntu 20.04. Y utilizaremos el Java OpenJDK 11 para nuestra instalación de WildFly, que es la versión por defecto de los paquetes de Java en el repositorio de Ubuntu 20.04.

Actualiza todo el repositorio de paquetes e instala Java OpenJDK utilizando el comando apt que aparece a continuación.

sudo apt update
sudo apt install default-jdk

Una vez completada la instalación, comprueba la versión de Java utilizando el siguiente comando.

java -version

A continuación se muestra el resultado que obtendrás.

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Como resultado, la instalación de Java OpenJDK en Ubuntu 20.04 se ha completado.

Paso 2 – Añadir un nuevo usuario y descargar WildFly

En este paso, crearemos un nuevo usuario y grupo del sistema ‘wildfly’ y descargaremos el código fuente de wildfly en el directorio ‘/opt/wildfly’.

Ahora crea un nuevo usuario y grupo llamado ‘wildfly’ utilizando los comandos que aparecen a continuación.

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

A continuación, ve al directorio ‘/opt’ y descarga el código fuente de wildfly utilizando el comando wget como se indica a continuación.

cd /opt/
wget -q wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz

El código fuente de wildfly ha sido descargado.

Ahora extrae el código fuente de wildfly y renombra el directorio extraído a ‘wildfly’.

tar -xf wildfly-20.0.1.Final.tar.gz
mv wildfly-20.0.1.Final wildfly

Después, cambia la propiedad del directorio ‘wildfly’ al usuario y grupo ‘wildfly’.

chown -RH wildfly:wildfly /opt/wildfly

Como resultado, el directorio de instalación de wildfly se encuentra en el directorio ‘/opt/wildfly’. El servicio wildfly se ejecutará bajo el nuevo usuario llamado ‘wildfly’ que acabamos de crear en la parte superior.

Crear un nuevo usuario y descargar el código fuente de WildFly

Paso 3 – Configuración básica de WildFly

Después de descargar el código fuente de wildfly, vamos a configurar el wildfly en el sistema Ubuntu.

Crea un nuevo directorio de configuración ‘/etc/wildfly’ y copia en él la configuración de ejemplo ‘wildfly.conf’.

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

A continuación, copia el archivo de servicio ‘wildfly.service’ en el directorio ‘/etc/systemd/system’.

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

Después, copia la muestra del script de lanzamiento de wildfly en el directorio ‘/opt/wildfly/bin’ y hazlo ejecutable.

cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
chmod +x /opt/wildfly/bin/*.sh

Ahora recarga el gestor systemd para aplicar el nuevo archivo ‘wildfly.service’.

systemctl daemon-reload

Inicia el servicio wildfly y añádelo al arranque del sistema.

systemctl start wildfly
systemctl enable wildfly

El servicio wildfly está en marcha en el sistema Ubuntu con la configuración por defecto.

Configuración básica de WildFly

Comprueba el servicio wildfly con el siguiente comando.

ss -plnt
systemctl status wildfly

Y obtendrás el resultado que se muestra a continuación.

Iniciar WildFly como servicio Systemd

Puerto de control WildFly

Como se puede ver, el wildfly se ejecuta como un servicio systemd en el puerto TCP por defecto ‘8080’ en el sistema Ubuntu.

Paso 4 – Habilitar la consola de administración de WildFly

En este paso, configuraremos un wildfly para que se ejecute en la dirección IP local ‘127.0.0.1’ y habilitaremos su consola de administración. Editaremos la configuración de wildfly ‘wildfly.conf’, el script de inicio de wildfly ‘launch.sh’ y el archivo de servicio de wildfly ‘wildfly.service’.

Edita la configuración de wildfly ‘/etc/wildfly/wildfly.conf’ utilizando el editor vim.

vim /etc/wildfly/wildfly.conf

Ahora cambia el valor de ‘WILDFLY_BIND’ por la dirección IP local ‘127.0.0.1’.

WILDFLY_BIND=127.0.0.1

Para habilitar la consola de administración de wildfly, añade la configuración ‘WILDFLY_CONSOLE_BIND’ que aparece a continuación.

WILDFLY_CONSOLE_BIND=127.0.0.1

Guarda y cierra.

A continuación, edita el script de inicio de wildfly ‘/opt/wildfly/bin/launch.sh’ utilizando el editor vim.

vim /opt/wildfly/bin/launch.sh

En las líneas‘domain.sh‘ y‘standalone.sh‘, añade una opción adicional para activar la consola de administración de wildfly como se indica 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

Guarda y cierra.

A continuación, edita el archivo de servicio por defecto para wildfly ‘/etc/systemd/system/wildfly.service’ utilizando el editor vim.

vim /etc/systemd/system/wildfly.service

En la línea‘ExecStart=/opt/wildfly/bin/launch.sh…. añade la opción‘$WILDFLY_CONSOLE_BIND‘ como se indica a continuación.

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

Guarda y cierra.

Ahora recarga el gestor systemd y reinicia el servicio wildfly.

systemctl daemon-reload
systemctl restart wildfly

Consola de administración de WildFly Enable

El servicio wildfly se está ejecutando con la consola de administración activada, compruébalo con el siguiente comando.

ss -plnt
systemctl status wildfly

A continuación se muestra el resultado que obtendrás.

Puerto de control y servicio WildFly

El resultado es que wildfly se ejecuta en la dirección IP local‘127.0.0.1‘ con el puerto TCP por defecto‘8080‘, y la consola de administración de wildfly está habilitada en el puerto TCP‘9990‘.

Paso 5 – Configurar el usuario administrador de WildFly

En este paso, crearemos un nuevo usuario para administrar wildfly utilizando el script ‘add-user.sh’ proporcionado por wildfly.

Ejecuta el script ‘add-user.sh’ de wildfly como se indica a continuación.

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

Para el tipo de usuario, escribe‘a‘ para crear el usuario de gestión (admin para gestionar wildfly).

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

Ahora escribe tu nombre de usuario y tu contraseña, y asegúrate de utilizar la contraseña segura.

Enter the details of the new user to add.
Using the realm 'ManagementRealm' as discovered from the existing property files.
Username : hakase
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 :

Para el grupo del nuevo usuario, pulsa ‘Enter‘ para continuar.

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:

A continuación, escribe «» para añadir tu usuario al«ManagementRealm» de wildfly.

About to add user 'hakase' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'hakase' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'hakase' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'hakase' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'hakase' with groups  to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'

Escribe «» para habilitar a tu usuario como proceso de gestión del controlador de host maestro-esclavo de wildfly.

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 <secret value="YXNoN2RhNjVzZyMkJQ==" />

Como resultado, se ha creado el usuario administrador y gestor de wildfly.

Paso 6 – Configurar Nginx como proxy inverso para WildFly

En este paso, instalaremos y configuraremos Nginx como proxy inverso para wildfly en el sistema Ubuntu.

Instala los paquetes de Nginx utilizando el comando apt que aparece a continuación.

sudo apt install nginx -y

Una vez terminada la instalación, ve al directorio de configuración ‘/etc/nginx/’.

cd /etc/nginx/

Crea un nuevo archivo ‘proxy_headers.conf’ en el directorio ‘/etc/nginx/conf.d’ utilizando el editor vim.

vim conf.d/proxy_headers.conf

Pega la siguiente configuración.

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

Guarda y cierra.

A continuación, crea una nueva configuración de host virtual para wildfly en el directorio ‘/etc/nginx/sites-available’.

vim sites-available/wildfly

Cambia la dirección IP por la tuya y pega la configuración en ella.

server {
  listen          80;
  server_name     SERVER-IP;

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

}

Guarda y cierra.

A continuación, activa el host virtual de wildfly y comprueba la configuración de Nginx.

ln -s /etc/nginx/sites-available/wildfly /etc/nginx/sites-enabled/
nginx -t

Asegúrate de que no hay ningún error y reinicia el servicio Nginx.

systemctl restart nginx

Como resultado, se ha completado la instalación de Nginx y la configuración de un proxy inverso para wildfly.

configurar Nginx como proxy inverso para WildFly

Paso 7 – Prueba

Abre tu navegador web y escribe la dirección IP de tu servidor en la barra de direcciones.

http://192.168.1.50/

Ahora obtendrás la página de índice por defecto de wildfly como la que aparece a continuación.

Índice por defecto de WildFly

A continuación, accede a la consola de administración de wildfly en la ruta URL ‘/console’ como se indica a continuación.

http://192.168.1.50/console/

Accede con tu usuario y contraseña de administrador de wildfly.

Inicio de sesión en WildFly Admin

Ahora obtendrás el panel de administración de wildfly como se muestra a continuación.

Panel de la consola de administración de WildFly

Como resultado, la instalación de wildfly con el proxy inverso Nginx en el servidor Ubuntu 20.04 se ha completado con éxito.

También te podría gustar...