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.html 和 static 资源。


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 代理配置成功。

相关推荐
Decay__5 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子7 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
学长毕设8 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
HideF8 小时前
Linux
linux·服务器·网络
万联WANFLOW8 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
sbjdhjd8 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
她说可以呀8 小时前
Vue插槽
前端·javascript·vue.js
qq_448011168 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
zzu123zsw9 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
Ruiery10 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器