Publicar una aplicación web Java con Spring Boot en Windows Server
Poner en producción una aplicación web Java con Spring Boot en Windows Server puede hacerse de varias formas, pero la más práctica y profesional es ejecutarla como servicio usando Java + MySQL + Nginx o IIS como proxy.
Arquitectura recomendada
Internet
↓
Nginx o IIS
↓
Spring Boot (.jar)
↓
MySQL
1. Requisitos del servidor
Instala en el servidor:
Java JDK 17 o superior
MySQL Server
Maven (opcional)
Nginx para Windows o IIS
Tu aplicación
.jar
2. Generar el archivo JAR
Desde tu proyecto Maven:
mvn clean package
Se generará:
target/miapp-0.0.1-SNAPSHOT.jar
3. Probar la aplicación localmente
En el servidor:
java -jar miapp-0.0.1-SNAPSHOT.jar
Si todo está bien:
Tomcat started on port(s): 8080
Abrir:
http://localhost:8080
4. Configurar el puerto
En application.properties:
server.port=8080
También puedes usar:
server.address=0.0.0.0
5. Configurar base de datos MySQL
Ejemplo:
spring.datasource.url=jdbc:mysql://localhost:3306/sistema
spring.datasource.username=root
spring.datasource.password=1234
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
6. Abrir el puerto en Firewall de Windows
Abrir:
8080 (Spring Boot)
80 (HTTP)
443 (HTTPS)
Ruta:
Panel de control → Firewall → Configuración avanzada
7. Ejecutar Spring Boot como servicio de Windows
La mejor opción es usar:
NSSM (Non-Sucking Service Manager)
Sitio oficial:
Instalar servicio
Abrir CMD como administrador:
nssm install MiSistemaSpring
Configurar:
Application Path
C:\Program Files\Java\jdk-17\bin\java.exe
Arguments
-jar C:\apps\miapp.jar
Startup directory
C:\apps
Luego:
nssm start MiSistemaSpring
Ahora tu aplicación iniciará automáticamente con Windows.
8. Configurar dominio
Apuntar dominio:
midominio.com
hacia la IP pública del servidor.
En DNS:
A Record → IP del servidor
9. Configurar Nginx como proxy reverso
Descargar:
Editar:
conf/nginx.conf
Ejemplo:
server {
listen 80;
server_name midominio.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Iniciar:
start nginx
Ahora:
http://midominio.com
redirige a Spring Boot.
10. Configurar HTTPS (SSL)
La mejor opción gratuita:
En Windows puedes usar:
Esto genera certificados SSL automáticos.
11. Logs en producción
Guardar logs:
logging.file.name=logs/app.log
o:
logging.file.path=logs
12. Variables importantes para producción
spring.jpa.show-sql=false
server.error.whitelabel.enabled=false
spring.thymeleaf.cache=true
13. Crear archivo .bat para iniciar
Ejemplo:
@echo off
java -jar C:\apps\miapp.jar
pause
14. Verificar memoria JVM
Ejemplo profesional:
java -Xms512m -Xmx2048m -jar miapp.jar
15. Producción profesional recomendada
Opción básica
Windows Server
Java 17
MySQL
Spring Boot
NSSM
Opción profesional
Nginx
SSL
Dominio
Backups automáticos
Logs
Monitoreo
16. Alternativas modernas de despliegue
También puedes usar:
Render
Railway
DigitalOcean
AWS
Azure
17. Estructura recomendada del servidor
C:\
└── apps\
└── miapp.jar
C:\
└── logs\
18. Verificar si la app está corriendo
CMD:
netstat -ano | findstr :8080
19. Reiniciar servicio
nssm restart MiSistemaSpring
20. Flujo completo resumido
1. Compilar proyecto
2. Subir JAR
3. Instalar Java
4. Configurar MySQL
5. Ejecutar app
6. Crear servicio NSSM
7. Configurar Nginx
8. Configurar dominio
9. Activar SSL
10. Monitorear logs
Comentarios
Publicar un comentario