搭建基于 Spring Boot 的 Java 项目服务器环境,通常分为基础环境准备、项目构建与部署、运行配置优化三个核心阶段。以下是一套通用且生产可用的实操指南:
一、基础环境准备(以 Linux CentOS/Ubuntu 为例)
1. 安装 JDK
Spring Boot 依赖 Java 运行时环境,建议安装 JDK 8 或 JDK 11+(根据项目要求)。
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk -y
# CentOS/RHEL
sudo yum install java-17-openjdk-devel -y
# 验证安装
java -version
2. 安装 Maven(可选但推荐)
如果项目使用 Maven 构建,需安装 Maven;若使用 Gradle 则安装 Gradle。
# Ubuntu/Debian
sudo apt install maven -y
# CentOS/RHEL
sudo yum install maven -y
# 验证
mvn -v
💡 提示:若服务器无法访问网络,可提前下载
maven和jdk安装包离线安装。
二、项目构建与上传
1. 本地打包
在开发机执行 Maven 打包命令,生成可执行的 JAR 包:
mvn clean package -DskipTests
生成的文件通常在 target/ 目录下,例如 myapp-1.0.0.jar。
2. 上传至服务器
使用 scp、rz/sz(lrzsz)或 Git 拉取等方式将 JAR 包上传到服务器指定目录,如 /opt/app:
mkdir -p /opt/app
scp myapp-1.0.0.jar user@your-server:/opt/app/
三、运行与配置优化
1. 创建专用用户(安全最佳实践)
避免用 root 直接运行服务:
sudo useradd -r -s /bin/false springboot-user
sudo chown -R springboot-user:springboot-user /opt/app
2. 启动脚本示例
创建 start.sh 脚本并赋予执行权限:
#!/bin/bash
APP_NAME="myapp"
JAR_FILE="/opt/app/myapp-1.0.0.jar"
LOG_DIR="/opt/logs/${APP_NAME}"
PORT=8080
mkdir -p $LOG_DIR
nohup java -jar
-Xms512m -Xmx1g
--spring.profiles.active=prod
--server.port=$PORT
$JAR_FILE > $LOG_DIR/app.log 2>&1 &
echo "[$(date)] $APP_NAME started with PID: $!"
chmod +x start.sh
./start.sh
3. 进程守护(进阶)
生产环境建议使用 systemd 管理进程,实现开机自启、自动重启:
创建服务文件 /etc/systemd/system/myapp.service:
[Unit]
Description=My Spring Boot Application
After=network.target
[Service]
Type=simple
User=springboot-user
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar myapp-1.0.0.jar --spring.profiles.active=prod
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp
查看日志:
sudo journalctl -u myapp -f
四、网络与安全配置
- 防火墙开放端口(如 8080):
sudo ufw allow 8080/tcp # Ubuntu sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent && sudo firewall-cmd --reload - Nginx 反向X_X(推荐):
通过 Nginx 转发域名请求到 Spring Boot 应用,处理静态资源、SSL 证书等。
五、监控与日志(可选增强)
- 集成 Spring Boot Actuator 提供健康检查端点
/actuator/health - 接入 Prometheus + Grafana 监控 JVM 指标
- 使用 ELK 或 Loki 集中管理日志
如需针对特定操作系统(Windows Server)、容器化部署(Docker/K8s)或 CI/CD 流程的详细方案,可进一步说明需求。
CLOUD云枢