spring boot + vue3项目部署须知

newbee-mall 项目上线,需要完成从本地开发环境到生产服务器的完整部署流程。该项目包含后台管理系统、前台商城系统和移动端应用,通常采用前后端分离架构(Spring Boot + Vue),因此部署需分别处理后端服务、前端静态资源和数据库。以下是标准化的上线步骤:

准备服务器与环境

  • 选择云服务器(如阿里云、腾讯云、莱卡云等),推荐配置:2核4G内存以上,带宽5M以上,操作系统选 CentOS 7+ 或 Ubuntu 20.04+。
  • 安装必要软件:
    • JDK 8+(用于运行 Spring Boot)
    • MySQL 5.7+(存储商品、订单、用户等数据)
    • Nginx(反向代理、静态资源托管)
    • Node.js 16+(用于构建前端项目)

部署后端服务

  • 打包后端项目:在本地使用 Maven 执行 mvn clean package -DskipTests,生成 .jar 文件。
  • 上传至服务器:通过 SCP 或 FTP 将 .jar 文件上传到服务器的 /opt/newbee-mall/ 目录。
  • 配置数据库:在服务器上创建数据库并导入初始化 SQL 脚本(通常在项目 sql/ 目录下)。
  • 修改配置文件:编辑 application-prod.yml,设置数据库连接地址、端口、日志路径等生产环境参数。
  • 启动服务:使用命令 nohup java -jar newbee-mall.jar --spring.profiles.active=prod > /dev/null 2>&1 & 后台运行。

部署前端项目

  • 构建前端包:进入前端项目目录(如 newbee-mall-vue-app),执行 npm install && npm run build,生成 dist/ 文件夹。

  • 上传静态资源:将 dist/ 文件夹内容上传到服务器的 /var/www/html/newbee-mall/ 目录。

  • 配置 Nginx:编写 Nginx 配置文件,将请求代理到后端服务,同时提供静态资源访问。示例配置如下:

    server {
    listen 80;
    server_name your-domain.com;

    复制代码
      location /api/ {
          proxy_pass http://localhost:28089; # 后端服务端口
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
      }
    
      location / {
          root /var/www/html/newbee-mall;
          index index.html;
          try_files $uri $uri/ /index.html; # 支持 Vue Router 的 history 模式
      }

    }

  • 重启 Nginx:执行 sudo systemctl restart nginx 使配置生效。

域名与 SSL 配置

  • 购买并解析域名:在域名服务商处将域名 A 记录指向服务器公网 IP。
  • 申请 SSL 证书:推荐使用 Let's Encrypt 免费证书,通过 Certbot 工具自动配置 HTTPS。
  • 强制跳转 HTTPS:在 Nginx 中添加重定向规则,确保所有 HTTP 请求跳转到 HTTPS。

安全与优化

  • 防火墙设置:开放 80、443、28089 端口,关闭不必要的端口。
  • 日志管理:配置日志轮转,避免磁盘占满。
  • 性能优化:启用 Gzip 压缩、静态资源缓存、数据库索引优化等。
  • 监控告警:可接入 Prometheus + Grafana 或阿里云 ARMS 进行服务监控。

验证与测试

  • 访问域名:打开浏览器输入 https://your-domain.com,检查首页、商品列表、购物车、登录等功能是否正常。
  • 测试 API:使用 Postman 或 curl 调用后端接口,确认返回数据正确。
  • 压力测试:使用 JMeter 或 wrk 模拟并发请求,评估系统承载能力。

整个部署过程需注意环境变量隔离、敏感信息脱敏、服务自启配置等细节。若使用 Docker 容器化部署,可将上述步骤封装进 Dockerfiledocker-compose.yml,实现一键部署。上线后建议定期备份数据库、更新依赖、审查安全漏洞,确保系统稳定运行。

相关推荐
杨利杰YJlio3 分钟前
Codex桌面客户端上手:项目、插件与自动化实战
前端·后端
常铭7 分钟前
【Java基础】01-HashMap的底层原理
后端·面试
幼儿园技术家28 分钟前
实现 GEO 监控:从多引擎探测到优化闭环
前端·后端
掘金者阿豪1 小时前
微信小程序虚拟支付与广告转化回传实战记录
后端
ping某2 小时前
专栏-null 和 undefined 到底是什么?
前端·javascript·后端
神奇小汤圆2 小时前
别再只会用ArrayList了!Java集合框架的性能天花板到底在哪?
后端
神奇小汤圆2 小时前
Dubbo 的 SPI 和 JDK 的 SPI 有什么区别?
后端
叫我少年2 小时前
C# 字符串基础
后端
用户128526116023 小时前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java
道友可好3 小时前
从今天开始:你的第一个 Harness Engineering 实践
前端·人工智能·后端