Linux环境下前后端分离项目(Spring Boot + Vue)手动部署全流程指南

Linux 环境下前后端分离项目手动部署指南 (以若依框架为例)

本指南详细记录了在 Linux 服务器上部署前后端分离项目(Spring Boot + Vue)的完整流程,涵盖环境准备、后端部署、前端部署及 Nginx 配置等核心步骤。

0. 环境准备

在开始部署前,请确保服务器已安装以下基础环境:

  • Redis: 缓存服务
  • Nginx: 反向代理与静态资源服务器
  • JDK: Java 运行环境 (建议 JDK 1.8+)
  • MySQL: 数据库服务

1. 后端部署 (Spring Boot)

1.1 源码打包

在本地开发环境中,使用 Maven 对后端项目进行打包。

  • 操作:运行 Maven 的 package 命令。
  • 产物:在 target 目录下生成 .jar 文件(例如 ruoyi-admin.jar)。

1.2 上传程序

将打包好的 jar 包上传至服务器指定目录。建议创建规范的目录结构以便管理。

  • 推荐路径示例/home/www/project_name/server/
  • 操作示意

1.3 启动服务

使用 nohup 命令后台启动 Java 程序,避免关闭终端后服务停止。

详细启动脚本参考:![[linux运行jar包]]

常用启动命令:

bash 复制代码
# 基础启动命令 (根据实际 jar 包名称修改)
# > temp.txt 表示将日志输出重定向到 temp.txt,& 表示后台运行
nohup java -jar ruoyi-admin.jar > temp.txt &

1.4 进程管理与验证

查看 Java 进程:

bash 复制代码
# 检查是否有 java 进程在运行
ps -ef | grep java

关闭进程:

如果需要重启或停止服务,先查询进程号 (PID),然后执行 kill 命令。

bash 复制代码
# -9 表示强制终止
kill -9 <进程号>

!IMPORTANT\] **网络安全配置** 1. **云服务器安全组** :需在云厂商控制台开放后端端口(如 **8080**)。 2. **Linux 防火墙** :如果服务器开启了 `firewalld`,也需放行对应端口。

部署验证:

后端启动成功后,Swagger 或接口文档应可访问。


2. 前端部署 (Vue)

2.1 项目打包

在本地前端项目根目录下,构建生产环境代码。

bash 复制代码
# 构建生产环境 (根据 package.json 中的脚本名称调整)
npm run build

打包结果:

  • 生成 dist 文件夹。
  • 包含 index.htmlstatic 资源。


2.2 上传静态资源

将生成的 dist 文件夹上传至服务器。

!NOTE\] **目录规范建议** 建议重命名 `dist` 文件夹以区分不同项目或端(如 `parking-back`),不要直接使用默认的 `dist` 名称。

  • 上传路径示例/home/www/parking-back/parking-back

3. Nginx 配置 (核心步骤)

Nginx 负责处理静态资源请求和将 API 请求反向代理到后端。

3.1 修改配置文件

编辑 Nginx 配置文件(通常位于 /usr/local/nginx/conf/nginx.conf/etc/nginx/nginx.conf)。

配置示例与详解:

nginx 复制代码
server {
    # 1. 监听端口 (前端访问入口)
    # 注意:此端口(如9090)同样需要在安全组和防火墙中开放
    listen       9090;
    
    # 2. 服务器域名或IP
    server_name  localhost; 

    # 3. 前端静态资源配置
    location / {
        # 指定前端文件上传的绝对路径
        root   "/home/www/parking-back/parking-back";
        # 默认首页
        index  index.html index.htm;
        
        # 4. 解决 Vue History 模式刷新 404 问题 (关键)
        # 尝试寻找 $uri,找不到找 $uri/,再找不到跳转 index.html
        try_files $uri $uri/ /index.html;
    }

    # 5. 后端接口反向代理配置
    # 拦截以 /prod-api/ 开头的请求
    location /prod-api/ {
        # 代理转发到后端服务地址
        # 注意:proxy_pass 结尾带 / 会去除 /prod-api/ 前缀
        proxy_pass http://localhost:8080/;
        
        # 传递真实客户端 IP 等头部信息
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 错误页面配置
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

3.2 重启 Nginx

修改配置文件后,必须重载或重启 Nginx 才能生效。

bash 复制代码
# 进入 Nginx sbin 目录 (根据实际安装位置调整)
cd /usr/local/nginx/sbin

# 检查配置文件语法是否正确
./nginx -t

# 重载配置文件 (推荐,无需停止服务)
./nginx -s reload

4. 最终验证

在浏览器中访问 http://服务器IP:前端端口(例如 http://x.x.x.x:9090)。

如果能正常显示页面且验证码/数据加载正常,说明前后端部署及 Nginx 代理配置成功。

相关推荐
比昨天多敲两行17 分钟前
Linux基础开发工具(下)
linux·运维·服务器
Yeh20205844 分钟前
Filter与Listener笔记
笔记
九成宫1 小时前
Git 与远程仓库实操记录:克隆、配置、分支推送与问题排查
笔记·git·ssh
海兰1 小时前
【第28篇】可观测性实战:LangFuse 方案详解
人工智能·spring boot·alibaba·spring ai
feng14561 小时前
OpenSREClaw - 故障复盘和变更评审双 Agent 案例
运维·人工智能
linux修理工2 小时前
chrome官方下载地址
运维·服务器
无忧智库2 小时前
IT运维正在经历一场真正的范式革命:从告警风暴到AIOps自主自愈的完整工程解构(WORD)
运维
RuoyiOffice2 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
spring boot·后端·vue·anti-design-vue·ruoyioffice·假期·人力
笨笨饿2 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
东京老树根2 小时前
SAP学习笔记 - BTP SAP Build12 - SAP Build Content Package
笔记·学习