Configurando un proyecto Java con Spring Boot en nginx

De MediaWiki
Ir a la navegación Ir a la búsqueda

Prerrequisitos

Unha instalación de Nginx como a feita nesta sección.

Instalación de maven

Para usar spring boot e preciso instalar maven:

apt install maven

Configurar rexistro A no DNS

Como a continuación abordaremos como probar dous exemplos, crearemos dous rexistros: A Record spring 173.249.60.168 A Record spring2 173.249.60.168

Un proxecto de rest api con spring boot

Partiremos deste exemplo de rest api con spring boot.

Descarga e descompresión do proxecto

Descargaremos e descomprimiremos o proxecto (instalado unzip de ser preciso), eliminado a continuación o ficheiro comprimido:

cd /var/www
mkdir spring
cd spring
wget https://howtodoinjava.com/wp-content/downloads/springbootrestdemo.zip
apt install unzip
unzip springbootrestdemo.zip
rm springbootrestdemo.zip

Configuración do porto

Maven corre por defecto polo porto 8080. Para cambiarlo:

cd /var/www/spring/springbootrestdemo/src/main/resources
nano application.properties
server.port=9001

Utilizamos 9001 para que no entré en colision con nginx. Mapearemos o porto 9001 ó 80 de nginx cun server block cun proxypass.

Configuración do server block en nginx

cd /etc/nginx/sites-available/
nano spring1.aclasedopeque.com
server {
 server_name spring1.aclasedopeque.com;

         location / {

proxy_pass http://localhost:9001;

         }
}

Creamos o enlace simbólico:

ln -s /etc/nginx/sites-available/spring1.aclasedopeque.com /etc/nginx/sites-enabled/spring1.aclasedopeque.com

Reiniciamos o Nginx para que tomen efecto os cambios:

systemctl restart nginx

Instalación, lanzamento e proba do proxecto

Na ruta onde se atopa o ficheiro pom, executaremos os comandos mvn:

cd springbootrestdemo
mvn install -DskipTests
mvn spring-boot:run&

Este proxecto da erro nalgún test, por eso se executa co parámetro -DskipTests

Outro proxecto de rest api con spring boot

Descarga e descompresión do proxecto

Este outro proxecto atópase documentado na web de javatpoint.

De xeito equivalente o feito no primer proxecto:

wget https://static.javatpoint.com/springboot/download/spring-boot-rest-example.zip
unzip spring-boot-rest-example.zip
rm spring-boot-rest-example.zip
cd /var/www/spring2/spring-boot-rest-example/src/main/resources
pico application.properties 
server.port=9002

Configuración do server block en nginx

cd /etc/nginx/sites-available/
nano spring2.aclasedopeque.com
server {
  server_name spring2.aclasedopeque.com;

location / { proxy_pass http://localhost:9002; }

}

Creamos o enlace simbólico:

ln -s /etc/nginx/sites-available/spring2.aclasedopeque.com /etc/nginx/sites-enabled/spring2.aclasedopeque.com

Reiniciamos o Nginx para que tomen efecto os cambios:

systemctl restart nginx

Execución e proba do proxecto

Executamos o proxecto e deixámolo correndo en segundo plano:

cd /var/www/spring2/spring-boot-rest-example
mvn spring-boot:run &

Se queremos que o proceso sega correndo ainda que a terminal onde se lanzou se peche podemos lanzar o comando:

disown

Se mais adiante queremos parar o proceso, podemos consultar os activos con ps, e matar o de java con kill -9_

ps
kill -9 processid

Referencias