Cómo instalar GlassFish Java Application Server con Nginx Reverse Proxy en AlmaLinux 9

GlassFish es una implementación gratuita y de código abierto de la plataforma Java EE desarrollada por Eclipse. Es la primera implementación mundial de la plataforma Java EE para desplegar aplicaciones Java. GlassFish proporciona una arquitectura escalable compatible con múltiples tecnologías Java, como Enterprise JavaBeans, JPA, JavaServer Faces y JMS.

Esta guía te mostrará cómo instalar GlassFish en el servidor AlmaLinux 9 con proxy inverso Nginx. También cubrimos cómo asegurar GlassFish habilitando la autenticación y la configuración de la conexión segura SSL/TLS para la administración de GlassFish.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente:

  • Un servidor AlmaLinux 9.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio local apuntando a la dirección IP del servidor.

Configuración de dependencias

En primer lugar, tienes que configurar tu sistema AlmaLinux añadiendo un usuario del sistema que se utilizará para ejecutar GlassFish, y luego instalar los paquetes Java OpenJDK.

Antes de instalar ningún paquete, crea un nuevo usuario de sistema glassfish con el comando que se indica a continuación. Este usuario tendrá el directorio principal por defecto /opt/glassfish7, que se utilizará como directorio de instalación de GlassFish.

sudo useradd -m -d /opt/glassfish7 -U -s /bin/false glassfish

Ahora instala los paquetes Java OpenJDK 21 y descomprimir con el comando que aparece a continuación. Escribe y para proceder a la instalación.

sudo dnf install java-21-openjdk unzip nano

instalar java

Una vez finalizada la instalación, comprueba la versión de Java con el comando que aparece a continuación. Asegúrate de que tienes Java 17 o 21 instalado en tu servidor AlmaLinux.

java --version

comprobar java

Descarga del paquete GlassFish

Después de haber creado un usuario del sistema e instalado Java, ahora puedes descargar el paquete GlassFish. Asegúrate de visitar la página de descargas de GlassFish y copia el enlace de la última versión.

Descarga el paquete GlassFish utilizando el comando wget que aparece a continuación.

wget https://download.eclipse.org/ee4j/glassfish/glassfish-7.0.12.zip

Una vez descargado, extrae el archivo glassfish-7.0.12.zip al directorio /opt con el siguiente comando unzip. Esto extraerá GlassFish al directorio /opt/glassfish7.

unzip glassfish-7.0.12.zip -d /opt

Por último, cambia la propiedad del directorio /opt/glassfish7 al usuario glassfish. Esto se debe a que ejecutarás GlassFish como usuario del sistema glassfish.

sudo chown -R glassfish:glassfish /opt/glassfish7

Configurar el servicio systemd para GlassFish

En esta guía, ejecutarás GlassFish como un servicio systemd. Esto ejecutará GlassFish en segundo plano y podrás gestionarlo fácilmente mediante la utilidad systemctl.

Crea un nuevo archivo de servicio systemd /etc/systemd/system/glassfish7.service utilizando el siguiente editor nano.

sudo nano /etc/systemd/system/glassfish7.service

Introduce a continuación la configuración de systemd para GlassFish.

[Unit]
Description = GlassFish Server v7
After = syslog.target network.target
[Service]
User=glassfish
ExecStart=/opt/glassfish7/bin/asadmin start-domain
ExecReload=/opt/glassfish7/bin/asadmin restart-domain
ExecStop=/opt/glassfish7/bin/asadmin stop-domain
Type = forking

[Install]
WantedBy = multi-user.target

Guarda el archivo y cierra el editor cuando hayas terminado.

Ahora vuelve a cargar el gestor systemd para aplicar tu nuevo archivo de servicio.

sudo systemctl daemon-reload

A continuación, inicia y habilita GlassFish con el siguiente comando. Una vez iniciado, GlassFish debería ejecutarse en los puertos 8080 y 4848.

sudo systemctl start glassfish7
sudo systemctl enable glassfish7

configurar systemd

Por último, verifica el servicio glassfish7 con el siguiente comando. Asegúrate de que el servicio glassfish7 está habilitado y en ejecución en tu sistema.

sudo systemctl status glassfish7

verificar glassfish

Configurar el administrador de GlassFish

Llegados a este punto, GlasFish se está ejecutando como un servicio systemd en tu sistema. Ahora necesitas confirmar el usuario administrador para GlassFish y configurar enable-secure-admin para asegurar la administración de GlassFish.

En primer lugar, ejecuta el siguiente comando para crear un nuevo usuario administrador para tu instalación de GlassFish.

sudo -u glassfish /opt/glassfish7/bin/asadmin --port 4848 change-admin-password

Cuando se te pida el usuario, escribe el usuario por defecto admin, y pulsa ENTER cuando se te pida la contraseña. El GlassFish por defecto viene sin contraseña.
Cuando se te pida una nueva contraseña, escribe la tuya y repite el proceso.

Una vez completado el proceso, deberías obtener la salida‘Command change-admin-password executed successfully‘.

configuración administrativa

Después de configurar la contraseña de administrador para GlassFish, ejecuta el siguiente comando para activar la función secure-admin. Esto generará certificados SSL/TLS automáticamente para GlassFish.

sudo -u glassfish /opt/glassfish7/bin/asadmin --port 4848 enable-secure-admin

Escribe tu usuario y contraseña de administrador para GlassFish cuando se te pida. Una vez que el proceso se haya realizado correctamente, deberías ver una salida‘Command enable-secure-admin executed successfully‘.

configurar secure-admin

Por último, reinicia el servicio glassfish7 para aplicar las modificaciones a tu GlassFish. Una vez ejecutado el comando, tu instalación de GlassFish debería estar asegurada, el usuario admin con la nueva contraseña y los certificados TLS generados para el admin de GlassFish.

sudo systemctl restart glassfish7

Ejecutar GlassFish con el proxy inverso Nginx

En esta guía, ejecutarás GlassFish detrás del proxy inverso Nginx. Así que ahora necesitas instalar Nginx en tu servidor AlmaLinux, y luego crear una nueva configuración de bloque de servidor para el proxy inverso.

Instala el servidor web Nginx en tu AlmaLinux utilizando el siguiente comando. Escribe y para proceder a la instalación.

sudo dnf install nginx

instalar nginx

Una vez finalizada la instalación, crea una nueva configuración de bloque de servidor /etc/nginx/conf.d/glassfish.conf utilizando el siguiente comando del editor nano.

sudo nano /etc/nginx/conf.d/glassfish.conf

Introduce la siguiente configuración para establecer un proxy inverso para GlassFish que se ejecute por defecto en el puerto 8080. Asegúrate de cambiar el nombre de dominio en lo siguiente con tu dominio local.

upstream glassfish7 {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name glassfish.hwdomain.io;

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

Cuando hayas terminado, guarda y sal del archivo.

Ahora verifica la sintaxis de Nginx utilizando el comando siguiente. Si la sintaxis es correcta, deberías obtener una salida ‘la sintaxis es correcta – la prueba se ha realizado correctamente’.

sudo nginx -t

A continuación, inicia y habilita Nginx en tu servidor AlmaLinux con el siguiente comando.

sudo systemctl start nginx
sudo systemctl enable nginx

configuración de nginx

Una vez iniciado, verifica el servicio Nginx para asegurarte de que el servicio se está ejecutando y está habilitado.

sudo systemctl status nginx

A continuación deberías ver que el servicio Nginx se está ejecutando y está habilitado en AlmaLinux.

verificar nginx

Configurar Firewalld

Con Nginx en funcionamiento, debes abrir el puerto HTTP en tu servidor mediante firewalld. Además de eso, también puedes abrir el puerto 4848 que es utilizado por el administrador de GlassFish.

Abre tanto el servicio HTTP como el HTTPS en firewalld con el comando que se indica a continuación.

sudo firewall-cmd --add-service={http,https} --permanent

Abre el puerto TCP 4848 que se utilizará para la administración de GlassFish.

sudo firewall-cmd --add-port=4848/tcp --permanent

Ahora recarga firewalld para aplicar tus cambios a firewalld. A continuación, verifica las reglas habilitadas en lis.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

A continuación puedes ver los servicios HTTP, HTTPS y el puerto 4848 añadidos a firewalld.

configurar firewalld

Acceder a GlassFish

Abre tu navegador web y visita tu nombre de dominio para GlassFish, como http://glassfish.hwdomain.io/. Si tu instalación se ha realizado correctamente, deberías obtener la página de índice de GlassFish como la siguiente.

índice

Ahora abre una nueva pestaña y visita http://glassfish.hwdomain.io:4848/ para acceder a la administración de GlassFish. Escribe el admin por defecto con tu contraseña, y haz clic en Iniciar sesión.

página de acceso

Si tienes la contraseña correcta, deberías ver el panel de control de GlassFish.

consola de administración

Conclusión

¡Enhorabuena! Ya has instalado correctamente GlassFish en el servidor AlmaLinux 9. Has instalado GlassFish, configurado el usuario administrador y asegurado el admin para GlassFish. Por último, también has instalado y configurado Nginx como proxy inverso para tu instalación de GlassFish.

También te podría gustar...