奋斗
努力

在Linux服务器上运行Java Spring Boot应用至少需要什么配置?

云计算

在 Linux 服务器上运行 Java Spring Boot 应用,最低限度的配置可以归纳为以下 5 项核心要素。只要满足这些条件,应用即可启动并对外提供服务:

1. 基础环境:JDK (Java Development Kit)

Spring Boot 是 Java 应用,必须安装与项目编译版本兼容的 JDK。

  • 要求:通常建议安装 JRE/JDK 8、11、17 或 21(取决于你构建应用时使用的 java.version)。
  • 验证命令:
    java -version
    # 输出示例:openjdk version "17.0.9" ...
  • 注意:生产环境通常只需安装 JRE(Java Runtime Environment),但为了调试方便,很多运维人员会直接安装 JDK。

2. 应用包:可执行的 JAR 文件

Spring Boot 的核心优势在于“单体”部署,不需要 Tomcat 等外部容器。

  • 要求:你需要一个通过 Maven/Gradle 打包好的 可执行 JAR 文件(通常命名为 app.jar 或类似)。
  • 特征:该 JAR 内部包含了 Spring Boot 的启动类、依赖库以及内嵌的 Web 服务器(如 Tomcat/Jetty/Undertow)。
  • 验证方法:
    jar tf app.jar | grep "Main-Class"
    # 如果看到 META-INF/MANIFEST.MF 中包含 Main-Class: com.example.Application,则说明是可执行的。

3. 网络配置:端口开放

Spring Boot 默认使用 8080 端口(可在 application.properties 中修改)。

  • 要求:Linux 服务器的防火墙必须放行该端口,否则外部无法访问。
  • 操作示例(以 CentOS/Firewalld 为例):
    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    sudo firewall-cmd --reload

    如果是 Ubuntu (UFW):sudo ufw allow 8080/tcp

4. 进程管理:后台运行方式

在 Linux 上直接运行 java -jar app.jar 会导致终端关闭后进程终止,因此必须将其置于后台运行。

  • 最低方案:使用 nohup 和 & 符号。
    nohup java -jar app.jar > output.log 2>&1 &
  • 推荐方案(更稳健):使用 systemd 服务管理器(见下文扩展部分),它支持自动重启、日志轮转和开机自启。

5. 环境变量(可选但强烈建议)

虽然 Spring Boot 有默认配置,但在生产环境中,至少需要配置以下内容之一来避免冲突或硬编码:

  • 数据源密码/地址:数据库连接信息不应写在代码里。
  • Profile 切换:指定使用 prod 配置文件(例如 -Dspring.profiles.active=prod)。
  • 端口修改:如果 8080 被占用,需指定 -Dserver.port=80。

💡 最佳实践补充:Systemd 服务配置

虽然上述 5 点是“最少”配置,但为了生产环境的稳定性(崩溃自动重启、日志管理),强烈建议创建一个 systemd 服务文件。

步骤:

  1. 创建服务文件 /etc/systemd/system/myapp.service:

    [Unit]
    Description=My Spring Boot Application
    After=syslog.target network.target
    
    [Service]
    User=your_user_name
    WorkingDirectory=/opt/myapp
    ExecStart=/usr/bin/java -jar /opt/myapp/app.jar --spring.profiles.active=prod
    SuccessExitStatus=143
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  2. 启动并设置开机自启:
    sudo systemctl daemon-reload
    sudo systemctl start myapp
    sudo systemctl enable myapp

总结

要运行 Spring Boot 应用,你只需要:

  1. 安装匹配的 JDK。
  2. 上传可执行的 JAR 包。
  3. 确保防火墙开放对应端口。
  4. 使用 nohup 或 systemd 将其作为后台服务运行。

除此之外,没有强制性的其他配置。

未经允许不得转载:云服务器 » 在Linux服务器上运行Java Spring Boot应用至少需要什么配置?