Despliegue de aplicación Java en VPS: guía paso a paso de la A a la Z

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Despliegue de aplicación Java en VPS: guía paso a paso de la A a la Z



Desarrollar una aplicación Java es solo la mitad del trabajo. La segunda parte, igualmente importante, es su implementación en un servidor. Muchos desarrolladores enfrentan dificultades al transferir el código de su máquina local a un VPS remoto. En este artículo, analizaremos el proceso completo de despliegue de una aplicación Java (usando Spring Boot como ejemplo) en un servidor privado virtual (VPS) con sistema operativo Ubuntu 22.04. Aprenderá cómo configurar el entorno, compilar el proyecto, ejecutarlo como un servicio y garantizar el acceso seguro a través de Nginx y SSL.



1. Preparación del VPS e instalación del software necesario



Antes de cargar el código, es necesario preparar el servidor. Usaremos Ubuntu 22.04 LTS. Conéctese al servidor por SSH:



ssh root@su-dirección-ip


Actualice el gestor de paquetes e instale las utilidades básicas:



apt update && apt upgrade -yapt install curl git -y


Ahora instalaremos OpenJDK 17 (la versión recomendada para la mayoría de los proyectos modernos):



apt install openjdk-17-jdk -y


Verifique la instalación:



java -version


Debería ver algo como:



openjdk version "17.0.9" 2023-10-17


A continuación, instalaremos Maven para compilar el proyecto (si usa Gradle, reemplace los comandos según corresponda):



apt install maven -ymvn -version


Con esto, la preparación del entorno básico está completa.



2. Compilación y carga de la aplicación Java al servidor



Compile su aplicación Java localmente. Vaya a la carpeta raíz del proyecto y ejecute:



mvn clean package -DskipTests


Después de una compilación exitosa, en la carpeta target aparecerá un archivo JAR (por ejemplo, myapp-0.0.1-SNAPSHOT.jar). Ahora debe cargarlo en el servidor. Use scp (ejecute desde su máquina local):



scp target/myapp-0.0.1-SNAPSHOT.jar root@su-dirección-ip:/opt/myapp/


En el servidor, cree un directorio para la aplicación y mueva el archivo:



mkdir -p /opt/myappmv myapp-0.0.1-SNAPSHOT.jar /opt/myapp/myapp.jar


Verifique que el archivo JAR esté en su lugar y ejecútelo manualmente para probarlo:



cd /opt/myappjava -jar myapp.jar


Si la aplicación se inicia sin errores, pase al siguiente paso.



3. Configuración de systemd para inicio automático



Para que la aplicación se inicie automáticamente al arrancar el sistema y se reinicie en caso de fallo, crearemos un servicio systemd.



Cree el archivo de servicio:



nano /etc/systemd/system/myapp.service


Inserte el siguiente contenido (reemplace youruser con el nombre de usuario bajo el cual se ejecutará la aplicación, o deje root):



[Unit]Description=My Java Spring Boot ApplicationAfter=network.target

[Service]User=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/myapp.jarSuccessExitStatus=143Restart=alwaysRestartSec=10

[Install]WantedBy=multi-user.target


Explicación de los parámetros:

  • After=network.target — el servicio se inicia después de que la red esté disponible.
  • Restart=always — reinicio automático en caso de fallo.
  • RestartSec=10 — pausa de 10 segundos antes del reinicio.
  • SuccessExitStatus=143 — manejo correcto de la señal de detención.


Ahora active e inicie el servicio:



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


Verifique el estado:



systemctl status myapp


Debería ver Active: active (running). Ahora su aplicación se iniciará

Blogs

Book Recommendations