服务器运维:Alibaba Cloud Linux 4 LTS・Vue前端 Java 后端 K3S 部署 CICD 目录规范清单

服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章-CSDN博客

适配系统:Alibaba Cloud Linux 4 LTS(RHEL9 生态,64位)

适用场景:Vue/Vite 前端静态项目、SpringBoot 微服务后端、K3S 轻量 Kubernetes 容器集群部署

规范目标:统一前端静态部署、后端服务部署、K3S容器资源目录标准,实现系统目录、业务资源、容器资源完全隔离,适配测试/生产环境,降低运维维护成本,规避文件丢失、权限混乱、路径报错等常见问题。

一、全局目录选址总规则(前后端+K3S 通用)

1.1 核心原则

系统资源与业务资源隔离:系统配置存 /etc、系统日志存 /var/log,所有前后端业务代码、静态资源、容器配置统一独立存放,不侵入系统目录

前后端资源隔离:前端静态资源、后端服务程序、K3S容器资源分目录部署,互不干扰

禁止临时目录存业务:严禁 /tmp、/root 正式投产,规避系统自动清理、误删风险

容器与宿主机隔离:K3S 配置、镜像缓存、挂载卷独立目录,不混用前后端业务目录

1.2 全场景目录优先级对照表

部署场景 首选目录 推荐等级 核心适用场景 禁止/不推荐事项
Vue前端项目 /opt/frontend/{项目名} ⭐⭐⭐⭐⭐ 生产首选 Vue2/Vue3、Vite、Nuxt静态打包项目,Nginx反向代理托管 不放在 /usr/share/nginx/html、/root、/tmp,避免全局覆盖、文件丢失
Java后端项目 /opt/backend/{项目名} ⭐⭐⭐⭐⭐ 生产首选 SpringBoot、SpringCloud微服务、RPC网关、后台接口服务 禁止存放系统脚本、yum安装组件,不与前端资源混目录
中间件(源码部署) /usr/local/{中间件名} ⭐⭐⭐⭐⭐ 标准规范 Nginx、Redis、RocketMQ、Seata、MinIO 手动编译安装 业务前后端代码禁止放入此目录,专属中间件程序
K3S 集群资源 /opt/k3s ⭐⭐⭐⭐⭐ 容器专属 K3S 配置文件、持久化挂载卷、镜像缓存、集群脚本 禁止存放前后端原始业务代码,避免容器挂载冲突
多用户业务部署 /home/{业务用户} ⭐⭐⭐⭐ 非root账号运行前后端项目,最小权限安全部署 root运行的核心生产项目不建议放置此处
临时测试调试 /root/workspace ⭐⭐ 前后端Demo测试、脚本调试、临时验证功能 严禁存放正式生产项目,权限开放高、易误删
全局临时文件 /tmp ❌ 完全禁止投产 仅用于解压安装包、临时缓存文件 系统定时自动清理,禁止放静态资源、jar包、配置、日志

二、Vue前端专属标准目录结构(生产规范)

适配:Vue3 + Vite、Vue2 + Webpack 打包后的 dist 静态资源,Nginx 托管部署

统一根路径:/opt/frontend/{项目名}(示例项目:web-admin 后台前端)

复制代码
/opt/frontend/web-admin
├── dist/                # 核心打包静态资源(index.html、js、css、img、fonts)
├── config/              # 前端nginx专属配置、环境变量配置
│   ├── nginx.conf       # 项目独立nginx代理配置(不修改全局nginx配置)
│   └── env.js           # 线上环境接口地址、静态资源配置
├── logs/                # 前端访问日志、错误日志、nginx代理日志
├── backup/              # 历史打包包、旧版本静态资源备份
├── temp/                # 前端临时解压、更新缓存文件
└── script/              # 前端发布、回滚、更新自动化脚本

2.1 前端目录用途详解

子目录 核心作用 运维部署规范
dist 存放打包后的线上静态资源,是前端对外访问的核心目录 每次发布直接覆盖更新,禁止手动修改打包后文件,统一通过打包工具生成
config 隔离项目专属Nginx配置,不污染全局 /etc/nginx 配置 全局Nginx通过 include 引入项目配置,多前端项目互不冲突
logs 存放前端页面访问日志、404/500错误日志、接口代理日志 配置日志自动切割、定期清理,防止磁盘爆满
backup 版本备份,支持快速回滚 每次发布前备份旧dist包,按日期命名归档
script 自动化发布、灰度、回滚脚本 统一脚本权限,支持一键更新前端项目

2.2 前端目录一键生成命令

复制代码
mkdir -p /opt/frontend/web-admin/{dist,config,logs,backup,temp,script}

2.3 前端Nginx配置挂载规范

全局Nginx主配置(/etc/nginx/nginx.conf)只做通用配置,项目独立配置全部存业务目录,通过引入方式加载:

在 /etc/nginx/conf.d/ 新建软链接,指向前端项目配置,实现解耦:

复制代码
ln -s /opt/frontend/web-admin/config/nginx.conf /etc/nginx/conf.d/web-admin.conf

三、Java后端专属标准目录结构(延续生产规范)

统一根路径:/opt/backend/{项目名}(示例项目:product-center 产品微服务)

复制代码
/opt/backend/product-center
├── app/                # SpringBoot Jar包存放目录
├── config/             # 外部配置文件(yml、jvm参数、日志配置)
├── logs/               # 业务运行日志、异常日志
├── script/             # 启停、重启、状态查询脚本
├── data/               # 项目本地持久化文件
├── backup/             # 版本Jar、配置备份
└── temp/               # 项目临时缓存文件

3.1 后端一键目录生成命令

复制代码
mkdir -p /opt/backend/product-center/{app,config,logs,script,data,backup,temp}

四、K3S 容器集群专属部署目录规范

适配Alibaba Cloud Linux 4 环境K3S轻量集群,区分集群配置、持久化存储、资源清单、运维脚本,完全隔离前后端业务目录

统一根路径:/opt/k3s

复制代码
/opt/k3s
├── config/             # K3S 集群核心配置、kubeconfig文件
├── manifests/          # 全局自动部署yaml清单(K3S自动监听)
├── apps/               # 自定义前后端容器部署yaml、service、ingress配置
│   ├── frontend/       # Vue前端容器部署清单
│   └── backend/        # Java后端容器部署清单
├── volume/             # 容器PV持久化挂载目录(静态资源、数据库数据、缓存)
│   ├── frontend-data/  # 前端容器静态资源挂载
│   ├── backend-data/   # 后端服务数据挂载
│   └── middleware-data/# 中间件持久化数据(Redis、MySQL)
├── cache/              # 镜像缓存、临时容器文件
├── logs/               # K3S集群日志、容器运行日志
└── script/             # 集群启停、资源更新、批量部署脚本

4.1 K3S目录核心规范

目录 核心用途 部署规范
manifests K3S原生自动加载目录,放入yaml可自动创建资源 仅放集群基础组件,业务前后端yaml统一放入 apps 目录
apps/frontend、apps/backend 分类存放前后端容器部署配置,结构清晰 按项目拆分yaml,避免单文件臃肿,方便迭代更新
volume 容器数据持久化,防止重建容器数据丢失 严格区分前后端、中间件挂载目录,权限单独配置
config 集群凭证、访问配置 严格权限管控,禁止普通用户修改

4.2 K3S目录一键生成命令

复制代码
mkdir -p /opt/k3s/{config,manifests,cache,logs,script} \
/opt/k3s/apps/{frontend,backend} \
/opt/k3s/volume/{frontend-data,backend-data,middleware-data}

五、全场景统一权限规范(前后端+K3S)

生产环境强制遵循最小权限原则,禁止root直接运行业务/容器进程

部署场景 专属用户 目录权限 核心命令
Vue前端项目 webuser(无登录权限) 目录750、文件640 useradd -s /sbin/nologin webuser && chown -R webuser:webuser /opt/frontend
Java后端项目 bizuser(无登录权限) 目录750、文件640、脚本740 useradd -s /sbin/nologin bizuser && chown -R bizuser:bizuser /opt/backend
K3S集群目录 k3suser 目录700、配置文件600 useradd -s /sbin/nologin k3suser && chown -R k3suser:k3suser /opt/k3s

六、CI/CD 自动化部署专属目录规范

适配场景:Jenkins、GitLab CI、Gitee CI 自动化拉取代码、打包、构建、镜像制作、K3S容器发布、回滚流水线,完全对齐本机 Vue 前端、Java 后端、K3S 容器部署目录,实现构建目录、制品目录、 镜像目录、K3S容器 发布目录、缓存目录完全链路隔离,杜绝流水线冲突、旧包残留、发布覆盖异常容器发布异常、挂载失效等问题。

统一核心根路径:/opt/cicd(遵循 opt 语义:自定义可选业务程序,不归系统管控,全权自主运维)

6.1 CI/CD 完整目录树结构

复制代码
/opt/cicd
├── jenkins/              # Jenkins服务本体、数据、插件、任务持久化目录
│   ├── data/             # Jenkins工作空间、任务、插件、用户数据
│   ├── config/           # Jenkins全局配置、安全策略、凭据配置
│   ├── logs/             # Jenkins服务运行日志
│   └── backup/           # Jenkins配置与数据定时备份
├── gitlab/               # GitLab代码仓库服务本体、代码数据持久化
│   ├── data/             # Git代码仓库、提交记录、分支标签数据
│   ├── config/           # GitLab全局站点配置、邮箱、权限配置
│   ├── logs/             # GitLab运行日志、访问日志
│   └── backup/           # 代码仓库、配置全量备份
├── workspace/           # CI/CD 流水线工作空间(代码拉取、编译、打包临时目录)
│   ├── frontend/        # 前端项目构建工作区
│   └── backend/         # 后端项目构建工作区
├── artifacts/           # 统一制品仓库(打包成品归档,长期留存)
│   ├── frontend/        # 前端 dist 压缩包、版本归档
│   └── backend/         # 后端 Jar 包、版本归档
├── k3s-release/         # 【K3S专属】容器发布资源目录
│   ├── image-build/     # 镜像构建Dockerfile、构建脚本
│   ├── yaml-temp/       # 动态生成的K3S临时部署YAML
│   └── rollback/        # K3S版本回滚资源备份
├── config/              # CI/CD 流水线专属配置
│   ├── pipeline/        # Jenkinsfile、CI 流水线脚本
│   └── env/             # 构建环境变量、私服地址、镜像仓库、K3S集群连接配置
├── script/              # 自动化发布、灰度、回滚、清理脚本
├── cache/               # 构建缓存(node_modules、maven 依赖缓存)
├── logs/                # 流水线构建日志、发布日志、K3S部署日志、异常日志
└── temp/                # 构建临时文件、解压缓存、临时资源

6.2 CI/CD 核心目录用途详解

|-------------|-------------------------------------------|-----------------------------------------|
| 子目录 | 核心作用 | 运维规范 |
| workspace | 流水线执行工作区,Git 拉取源码、npm/maven 编译打包、代码校验 | 每次构建自动清空冗余文件,避免旧代码残留导致打包异常;前后端工作区隔离互不干扰 |
| artifacts | 成品制品归档,存储打包完成的 dist、Jar 包,按「项目名-版本号-日期」归档 | 永久留存历史版本,支持一键版本回滚、灰度发布,禁止随意删除 |
| k3s-release | K3S容器发布专属资源,存放镜像构建配置、动态YAML、版本回滚包 | 专门承接容器化部署全流程,与宿主机部署资源完全隔离,避免YAML混乱、版本覆盖 |
| config | 存放流水线文件、环境变量、私服、镜像仓库、K3S 集群连接配置 | 配置与工作空间隔离,升级构建环境、更新集群配置不丢失,统一版本管理 |
| cache | 缓存前端 node 依赖、后端 maven 依赖,提升构建速度 | 定期清理过期缓存,避免磁盘占用过高,不影响正式制品与容器部署资源 |
| logs | 记录每一次构建、发布、K3S容器部署、报错日志,方便排查流水线与集群异常 | 开启日志按天切割、自动压缩清理,保留近30天日志,区分宿主机部署、容器部署日志 |

6.3 CI/CD 目录一键生成命令

复制代码
mkdir -p /opt/cicd/{jenkins,gitlab,workspace,artifacts,config,script,cache,logs,temp,k3s-release} \
/opt/cicd/jenkins/{data,config,logs,backup} \
/opt/cicd/gitlab/{data,config,logs,backup} \
/opt/cicd/workspace/{frontend,backend} \
/opt/cicd/artifacts/{frontend,backend} \
/opt/cicd/config/{pipeline,env} \
/opt/cicd/k3s-release/{image-build,yaml-temp,rollback}

6.4 CI/CD 目录选址逻辑(对齐全文规范)

语义合规:/opt 为系统非必需的自定义业务目录,CI/CD 自动化属于业务运维工具,完全契合 opt=Optional 设计语义,不侵入系统内核目录

全局统一:前端/后端/K3S/CI/CD 全部收敛在 /opt,形成完整业务闭环,目录层级统一、运维逻辑一致

全场景闭环:前端/后端/K3S容器/CI/CD流水线全部收敛在 /opt,宿主机部署、容器化部署双模式目录独立、规范统一,无场景遗漏

6.5 CI/CD 发布联动规范(核心闭环)

流水线发布路径严格对齐前文部署目录,实现构建→归档→发布闭环:

前端:/opt/cicd/artifacts/frontend 制品 → 发布至 /opt/frontend/{项目名}/dist(宿主机Nginx托管)

后端主机部署:/opt/cicd/artifacts/backend 制品 → 发布至 /opt/backend/{项目名}/app

K3S容器部署:CI/CD 构建前后端镜像、推送镜像仓库 → 读取 /opt/cicd/k3s-release 配置 → 动态更新 /opt/k3s/apps 业务YAML → K3S集群重载完成部署、扩容、回滚全流程

6.6 CI/CD 专属权限规范

沿用最小权限原则,统一运维账号,避免 root 运行流水线

复制代码
useradd -s /sbin/nologin cicduser && chown -R cicduser:cicduser /opt/cicd

七、文件分类存放总规范(统一收口)

文件类型 前端存放路径 后端存放路径 K3S容器存放路径 系统配置路径
业务程序/静态资源 /opt/frontend/项目名/dist /opt/backend/项目名/app 容器内部镜像打包 不存放业务程序
自定义配置文件 /opt/frontend/项目名/config /opt/backend/项目名/config /opt/k3s/apps/* /etc(全局组件配置)
运行日志 /opt/frontend/项目名/logs /opt/backend/项目名/logs /opt/k3s/logs /var/log(系统日志)
启停/部署脚本 /opt/frontend/项目名/script /opt/backend/项目名/script /opt/k3s/script 不存放业务脚本
备份文件 /opt/frontend/项目名/backup /opt/backend/项目名/backup 手动归档服务器备份目录
持久化数据 无需持久化 /opt/backend/项目名/data /opt/k3s/volume/*

八、上线避坑核对清单(前后端+K3S通用)

✅ Vue静态资源、后端Jar包、K3S容器配置,全部存放 /opt 业务目录,不侵入系统目录

✅ 前端Nginx配置独立业务目录,通过软链接引入全局配置,不修改系统默认配置

✅ 前后端配置文件与程序包物理分离,升级迭代不覆盖配置

✅ K3S业务yaml清单分类存放,与集群基础组件配置隔离

✅ 所有正式业务不存 /tmp、/root,杜绝文件丢失、权限泄露风险

✅ 生产环境使用独立业务用户运行服务,禁止root常驻运行业务、容器进程

✅ 日志目录独立配置,开启自动切割清理,防止磁盘占满宕机

✅ 容器持久化目录单独挂载,避免容器重建导致数据丢失

相关推荐
百变梦仔17 分钟前
Codex 启动回复合格后,我会用三类证据验收前端改动
前端·github
the局外人19 分钟前
别让 Codex 一口气写完整个前端:5 组 Skills,把页面、逻辑、测试和构建拆清楚
前端·人工智能·agent
honkun621 分钟前
vue 表格组件 vxe-table 实实现专业记账凭证编辑表格与自动汇总
前端·javascript·vue.js
2301_8026510822 分钟前
linux系统的学习:网络
linux·网络·学习
前端snow29 分钟前
ai agent ---nest+langchain实现SSE推送信息
前端
IMPYLH30 分钟前
HTML 的 <nav> 元素
前端·html
ouynagda34 分钟前
Linux Socket 网络编程学习笔记
linux·网络·学习
IT_陈寒40 分钟前
Vue的computed属性差点让我加班到凌晨
前端·人工智能·后端
昌原的儿子LEO42 分钟前
【Linux网络编程】TCP套接字核心函数详解|三次握手|send/recv/listen/accept接口梳理
linux·网络·tcp/ip