在VPS上部署Kotlin应用程序:分步指南

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

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

开始课程
```html

部署 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 enable


2. 构建 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
```

博客

书籍推荐