Configurando un proyecto Java con Spring Boot en nginx
Sumario
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