news 2026/9/1 19:04:04

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
服务器运维: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常驻运行业务、容器进程

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 19:03:16

Matlab实现3D直流电法正演:有限单元法全流程解析

简介:本资源是一套面向地球物理勘探初学者与科研人员的Matlab三维有限元直流电阻率正演模拟实践包,聚焦电阻率法正演建模核心能力训练,适用于水文地质调查、矿产勘查及工程地质建模等实际场景。压缩包含99个文件(1001KB&#xff0…

作者头像 李华
网站建设 2026/9/1 19:00:02

STM32F407嵌入式AI实战:手写数字识别从PyTorch到C代码部署

简介:本资源是面向嵌入式初学者与STM32进阶开发者的手写数字识别实战项目,聚焦于在资源受限的STM32F407系列MCU上部署轻量级图像识别功能,适用于智能终端、人机交互界面及IoT边缘识别等场景。压缩包共635个文件,含279个C源码&…

作者头像 李华
网站建设 2026/9/1 18:59:33

Java+SpringBoot+Vue+MySQL美妆购物网站毕设全流程解析

简介:这是一套面向计算机专业本科生的高分毕业设计级美妆购物网站实战项目,适用于毕设开题、课程设计与期末大作业,解决电商类系统从需求分析到部署落地的全流程实践难题。资源包共839个文件,涵盖133个Java后端逻辑文件、76个Vue前…

作者头像 李华
网站建设 2026/9/1 18:58:40

SAR ADC行为级建模实战:基于Matlab的模型搭建与性能评估

简介:本资源是一套面向电子工程与集成电路设计初学者的SAR ADC建模实践材料,聚焦MATLAB环境下的逐次逼近型模数转换器原理仿真与性能分析,解决理论理解与算法实现脱节的问题。压缩包共2个文件(1个MATLAB源码文件、1份PDF技术文档&…

作者头像 李华
网站建设 2026/9/1 18:58:27

2038危机:32位Unix时间戳溢出原理与迁移实践

时间戳是计算机里最容易被忽略、又最容易引发事故的基础数据之一。你可能每天都在使用毫秒时间戳调接口、存订单、做倒计时,却很少会想:如果存储时间戳的整数类型只有 32 位,会发生什么?答案就是 2038 危机。所谓 2038 危机&#…

作者头像 李华
网站建设 2026/9/1 18:56:54

LEACH与HEED的比较分析研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

作者头像 李华