快雪时晴-初晴融雪头像
关注
服务器运维:阿里云 Alibaba Cloud Linux 4 LTS・Vue前端 Java 后端 K3S 部署 CICD 目录规范清单封面图

服务器运维:阿里云 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常驻运行业务、容器进程

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

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

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/snowball_li/article/details/164265231

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--