在VPS上部署Java应用程序:从A到Z的分步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在VPS上部署Java应用程序:从A到Z的分步指南



开发Java应用程序只是工作的一半。另一半同样重要的部分是在服务器上部署它。许多开发人员在将代码从本地机器迁移到远程VPS时会遇到困难。在本文中,我们将详细讲解在运行Ubuntu 22.04操作系统的虚拟专用服务器(VPS)上部署Java应用程序(以Spring Boot为例)的完整过程。您将学习如何配置环境、构建项目、将其作为服务运行,并通过Nginx和SSL确保安全访问。



1. 准备VPS并安装必要软件



在上传代码之前,需要先准备服务器。我们将使用Ubuntu 22.04 LTS。通过SSH连接到服务器:



ssh root@您的IP地址


更新包管理器并安装基本工具:



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


现在安装OpenJDK 17(大多数现代项目推荐的版本):



apt install openjdk-17-jdk -y


检查安装:



java -version


您应该看到类似以下内容:



openjdk version "17.0.9" 2023-10-17


接下来安装Maven用于构建项目(如果您使用Gradle,请相应替换命令):



apt install maven -ymvn -version


至此,基本环境准备完成。



2. 构建Java应用程序并上传到服务器



在本地构建您的Java应用程序。进入项目的根目录并执行:



mvn clean package -DskipTests


构建成功后,在target文件夹中会出现一个JAR文件(例如myapp-0.0.1-SNAPSHOT.jar)。现在需要将其上传到服务器。使用scp(在本地机器上执行):



scp target/myapp-0.0.1-SNAPSHOT.jar root@您的IP地址:/opt/myapp/


在服务器上创建应用程序目录并移动文件:



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


检查JAR文件是否就位,并手动启动进行测试:



cd /opt/myappjava -jar myapp.jar


如果应用程序启动没有错误,则进入下一步。



3. 配置systemd以实现自动启动



为了使应用程序在系统启动时自动运行,并在崩溃时自动重启,我们需要创建一个systemd服务。



创建服务文件:



nano /etc/systemd/system/myapp.service


粘贴以下内容(将youruser替换为运行应用程序的用户名,或保留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


参数说明:

  • After=network.target — 服务在网络就绪后启动。
  • Restart=always — 崩溃时自动重启。
  • RestartSec=10 — 重启前等待10秒。
  • SuccessExitStatus=143 — 正确处理停止信号。


现在激活并启动服务:



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


检查状态:



systemctl status myapp


您应该看到Active: active (running)。现在您的应用程序将自动启动

博客

书籍推荐