En el artículo anterior se indicaron los pasos necesarios para disponibilizar una página web estática mediante Apache httpd pero ¿es suficiente mostrar solo texto?.Muchos negocios necesitan páginas webs mas complejas, en estos casos,es de utilidad saber como desplegar una aplicación spring boot como servicio.
Para poder desplegar nuestra aplicación spring boot necesitamos el jar en nuestro nodo para obtenerlo tenemos dos alternativas:
- Generarlo localmente y copiarlo en el nodo. En este caso se puede omitir el paso 1
- Generarlo en nodo. En este caso es necesario realizar el paso 1 para informarle al sistema donde tenemos instalado el jdk que usaremos.
1) Agregar la variable de entorno JAVA_HOME
1.1) Crear un archivo en "/etc/profile.d/" sudo touch /etc/profile.d/java.sh
1.2) Abrir el archivo creado en el paso anterior sudo vi /etc/profile.d/java.sh
1.3) Agregarle al archivo lo siguiente:
export JAVA_HOME={PATH_JDK}
nota: reemplazar {PATH_JDK} por la ruta completa donde se encuentra el jdk a utilizar.
2) Modificamos el archivo de configuración creado en el articulo anterior en "/etc/httpd/conf.d" para indicarle a Apache httpd donde se deben redireccionar las request y los response mediante un proxy:
ServerName dominio.com
ProxyPreserveHost On
ProxyTimeout 900
ProxyPass / http://localhost:{port}/
ProxyPassReverse / httpd://localhost:{port}/
nota: reemplazar {port} por el numero de puerto en donde se levanta la aplicación y "dominio.com" por su dominio.
3) Si su aplicación utiliza una DB entonces debe instalar la que corresponda ( en mi caso MariaDB)
4) Para que la aplicación se ejecute como un servicio debe crear un enlace simbólico :
sudo ln -s path/{mi-app}.jar /etc/init.d/{mi-app}.jar
nota:
- Path es la ruta completa donde se encuentra el jar de nuestra aplicación
- Reemplazar {mi-app} por el nombre de su aplicación, con este nombre se identificará el servicio
5) Por último se debe iniciar el servicio , para lo cual ejecutamos el siguiente comando:
sudo service {mi-app} start
Luego de unos minutos quedará disponible su aplicación accediendo al dominio que se configuro en el paso 2.