文档首页> 云服务器> Spring Boot云服务器部署全流程实战

Spring Boot云服务器部署全流程实战

发布时间:2025-05-14 14:51       

Spring Boot云服务器部署全流程指南:从开发到上线

在互联网技术持续迭代的当下,使用云服务器部署Spring Boot应用已成为主流方案。本文将结合技术实践,系统梳理全链路部署流程,帮助开发者掌握关键操作节点。


一、环境准备规划

1. 基础环境要求

部署Spring Boot应用前需配置三类核心环境:

  • JDK版本:根据项目gradle.properties文件确认OpenJDK版本(建议17+)
  • Maven安装:使用mvn -v验证版本兼容性,推荐3.8+版本
  • 云服务器配置:内存需预留项目运行所需,建议不低于4GB;系统环境优先选择Ubuntu 22.04 LTS

2. 安全性配置

  • 关闭服务器端80端口外发流量
  • 配置CSRF令牌限制访问源
  • 设置Nginx限流规则防暴力破解

二、构建可部署包

1. 项目打包规范

在pom.xml中通过以下配置生成可执行包:


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                
                    repackage
                
            
        
    

使用mvn clean package -DskipTests命令生成无依赖合并的独立JAR包

2. 包体积优化技巧

  • 移除开发依赖:spring-boot-starter-tomcat
  • 使用ProGuard进行代码压缩
  • 通过--repackage参数实现增量构建

三、服务器部署配置

1. Java运行环境部署

执行以下命令完成JDK安装:

wget https://download.java.net/openjdk/jdk17/ri/openjdk-17_+35/openjdk-17_35-linux-x64.tar.gz
tar -xzvf openjdk-17_35-linux-x64.tar.gz -C /usr/local
echo 'export JAVA_HOME=/usr/local/jdk' >> ~/.bashrc

2. 进程管理方案

使用Systemd代替nohup实现进程守护:

[Unit]
Description=springboot service
After=network.target

[Service]
User=ubuntu
ExecStart=/opt/app/myapp.jar
SuccessExitStatus=143
Restart=on-failure

[Install]
WantedBy=multi-user.target

3. 日志管理策略

  • 使用logrotate进行日志分割
  • 配置GELF协议对接ELK日志分析系统
  • 在application.yml中设置日志采样级别:
    logging:
    level:
      root: info
      com.example: debug
    file:
      name: /var/log/app.log
      max-size: 50MB

四、高可用架构设计

1. 负载均衡方案

通过Nginx配置UPSTREAM实现多节点调度:

upstream bakend {
    zone backend 64k;

    server 10.0.0.1:8080 weight=5;
    server 10.0.0.2:8080 weight=3 backup;

    fair;
}

2. 蓝绿部署实践

采用二进制替换方式实现无损更新:

  1. 将原PID写入/min/undeploy目录
  2. 新版本通过screen -dmS app java -jar new.jar启动
  3. 使用Consul进行服务注册确认
  4. 渐进式切换流量

五、常见问题解决方案

1. 端口冲突处理

系统启动时提示Address already in use时:

lsof -i :8080
kill -9 

2. 内存溢出诊断

出现OutOfMemoryError:Java heap space时:

  1. 使用-Xms512m -Xmx2g指定内存参数
  2. 排查循环引用导致的内存泄漏
  3. 增加G1收集器参数:-XX:+UseG1GC

3. 连接超时解决

数据库连接池耗尽时:

spring.datasource.hikari.maximumPoolSize=15
spring.datasource.hikari.idleTimeout=30000

六、部署后验证流程

1. 基本功能验证

使用curl命令执行健康检查:

curl -I http://:/actuator/health

2. 性能基准测试

通过wrk进行压测评估:

wrk -t4 -c100 -d30s http:///api/v1/data

3. 安全加固检查

  • 审计OSS跨域配置
  • 验证JWT令牌强度
  • 关闭Swagger等开发接口

七、运维最佳实践

  1. 定期自动备份:结合crontab和rsync实现日志归档
  2. 构建监控体系:Prometheus+Granfana实现内存/CPU可视化
  3. 灰度发布策略:通过分支路由逐步验证新版本

通过系统化部署流程和深度优化,在云环境可实现Spring Boot应用99.99%的可用性。建议根据业务特点选择Jenkins或GitLab CI进行持续集成,最终构建DevOps标准化运维体系。