Implantação de aplicação Java em VPS: guia passo a passo do início ao fim
Desenvolver uma aplicação Java é apenas metade do trabalho. A segunda parte, igualmente importante, é sua implantação no servidor. Muitos desenvolvedores enfrentam dificuldades ao transferir o código da máquina local para um VPS remoto. Neste artigo, abordaremos o processo completo de implantação de uma aplicação Java (usando Spring Boot como exemplo) em um servidor virtual privado (VPS) com sistema operacional Ubuntu 22.04. Você aprenderá como configurar o ambiente, compilar o projeto, executá-lo como um serviço e garantir acesso seguro via Nginx e SSL.
1. Preparação do VPS e instalação do software necessário
Antes de carregar o código, é necessário preparar o servidor. Usaremos Ubuntu 22.04 LTS. Conecte-se ao servidor via SSH:
ssh root@seu-endereco-ipAtualize o gerenciador de pacotes e instale utilitários básicos:
apt update && apt upgrade -yapt install curl git -yAgora instalaremos o OpenJDK 17 (versão recomendada para a maioria dos projetos modernos):
apt install openjdk-17-jdk -yVerifique a instalação:
java -versionVocê deve ver algo como:
openjdk version "17.0.9" 2023-10-17Em seguida, instalaremos o Maven para compilar o projeto (se você usa Gradle, substitua os comandos adequadamente):
apt install maven -ymvn -versionCom isso, a preparação do ambiente básico está concluída.
2. Compilação e upload da aplicação Java para o servidor
Compile sua aplicação Java localmente. Navegue até a pasta raiz do projeto e execute:
mvn clean package -DskipTestsApós a compilação bem-sucedida, um arquivo JAR aparecerá na pasta target (por exemplo, myapp-0.0.1-SNAPSHOT.jar). Agora é necessário fazer o upload para o servidor. Use o scp (executado a partir da sua máquina local):
scp target/myapp-0.0.1-SNAPSHOT.jar root@seu-endereco-ip:/opt/myapp/No servidor, crie um diretório para a aplicação e mova o arquivo:
mkdir -p /opt/myappmv myapp-0.0.1-SNAPSHOT.jar /opt/myapp/myapp.jarVerifique se o arquivo JAR está no local e execute-o manualmente para teste:
cd /opt/myappjava -jar myapp.jarSe a aplicação iniciar sem erros, vá para a próxima etapa.
3. Configuração do systemd para inicialização automática
Para que a aplicação inicie automaticamente na inicialização do sistema e reinicie em caso de falha, criaremos um serviço systemd.
Crie o arquivo de serviço:
nano /etc/systemd/system/myapp.serviceInsira o seguinte conteúdo (substitua youruser pelo nome do usuário sob o qual a aplicação será executada, ou deixe 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.targetExplicação dos parâmetros:
After=network.target— o serviço inicia após a rede estar ativa.Restart=always— reinicialização automática em caso de falha.RestartSec=10— pausa de 10 segundos antes da reinicialização.SuccessExitStatus=143— tratamento correto do sinal de parada.
Agora ative e inicie o serviço:
systemctl daemon-reloadsystemctl enable myappsystemctl start myappVerifique o status:
systemctl status myappVocê deve ver Active: active (running). Agora sua aplicação será iniciada