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
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
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
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
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‘.
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‘.
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
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
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.
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.
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.
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.
Si tienes la contraseña correcta, deberías ver el panel de control de GlassFish.
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.