部署 Kotlin 应用到 VPS:完整的分步指南
Kotlin 开发只是工作的一半。迟早会面临一个问题:如何将应用程序从本地环境迁移到真实服务器?在本文中,我们将详细讲解如何将 Kotlin 应用程序(以 Spring Boot 为例)部署到 VPS。您将学习如何准备服务器、构建 JAR 文件、配置自动启动以及通过 HTTPS 确保安全连接。本指南既适合新手,也适合希望系统化知识的开发者。
1. 准备 VPS 并安装必要的软件
在加载代码之前,需要先准备服务器。建议使用 Ubuntu 22.04 LTS 或更新版本。通过 SSH 连接到服务器:
ssh root@您的服务器IP更新软件包库并安装 Java(Kotlin 编译为 JVM 字节码,因此我们需要 JDK 17 或 21):
sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk -yjava -version确保 Java 版本与您的构建版本匹配。同时安装 Git(如果使用仓库)和用于处理归档文件的工具:
sudo apt install git unzip curl -y在服务器上处理 Kotlin 项目时,不一定需要安装 Kotlin 编译器本身——我们将在本地或通过 CI/CD 执行构建。但是,如果您计划在服务器上编译,请添加 SDKMAN! 和 Kotlin:
curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk install kotlin重要: 在此阶段,还要配置防火墙 (UFW) 以实现基本安全:
sudo ufw allow OpenSSHsudo ufw allow 8080/tcp # 应用程序端口sudo ufw enable2. 构建 Kotlin 应用程序并传输到服务器
考虑一个典型的基于 Spring Boot 和 Kotlin 的项目。在本地(或如果克隆了仓库则在服务器上)执行 JAR 文件的构建。在项目根目录下执行:
./gradlew clean bootJar或者,如果使用 Maven:
mvn clean package构建完成后,在 build/libs/ (Gradle) 或 target/ (Maven) 文件夹中会出现一个名为 app-0.0.1-SNAPSHOT.jar 的文件。使用 SCP 将其复制到服务器:
scp build/libs/app-0.0.1-SNAPSHOT.jar root@您的IP:/opt/myapp/app.jar在服务器上为应用程序创建目录并移动 JAR 文件:
sudo mkdir -p /opt/myappsudo mv app.jar /opt/myapp/手动检查 JAR 文件是否能启动:
cd /opt/myappjava -jar app.jar --server.port=8080如果应用程序启动并在 8080 端口响应——一切正常。停止它(Ctrl+C)并继续配置永久启动。
3. 配置 systemd 以实现自动启动和监控
为了确保应用程序在服务器重启时自动启动并在崩溃后恢复,我们将创建一个 systemd 服务。创建文件:
sudo nano /etc/systemd/system/kotlin-app.service粘贴以下模板(根据您的应用程序替换参数):
[Unit]Description=Kotlin Spring Boot ApplicationAfter=network.target
[Service]Type=simpleUser=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/app.jar --server.port=8080Restart=on-failureRestartSec=10StandardOutput=journalStandardError=journal
[Install]WantedBy=multi-user.target重新加载 systemd 配置并启动服务:
sudo systemctl daemon-reloadsudo systemctl start kotlin-appsudo systemctl status kotlin-app如果状态显示 active (running)——一切正常。将服务设置为开机自启:
sudo systemctl enable kotlin-app
```