logo
6
2
WeChat Login
docs(readme): 补充 Nginx 安装与运行详细说明

🚀 Nginx 自动化构建与发布项目(基于 Cloud Native Build)

本项目使用 Cloud Native Build (CNB) 实现自动化拉取 GitHub 仓库代码、编译并打包 Nginx,最终生成可发布的 Release 版本。整个流程无需手动配置环境依赖,支持定时构建与发布,适用于 DevOps 自动化部署场景。

🧩 项目目标

  • ✅ 定时拉取 GitHub 上最新的 Nginx 源码
  • ✅ 利用 CNB 自动构建编译环境
  • ✅ 编译并打包 Nginx
  • ✅ 自动生成 Release 包
  • ✅ 无需手动配置环境依赖
  • ✅ 支持定时任务自动运行

🧰 技术栈

Linux 操作系统:运行构建脚本和编译任务 Cloud Native Build (CNB):自动检测和配置构建环境 CNB Cron:定时触发构建流程 Shell / Python 脚本:用于拉取代码、执行构建、打包和发布 Git:拉取源码仓库 Docker(可选):如果使用容器化构建

📁 项目结构

├── .cnb.yml # 构建配置文件 ├── README.md # 项目说明文档 ├── latest_version.json # 最新版本信息文件 └── pull.py # 主脚本(拉取、编译、打包)

📝 脚本说明

pull.py

pull.py 是项目的核心脚本,一条命令完成所有操作:

python3 pull.py

自动完成的流程:

  1. 🔍 获取 Nginx 最新版本信息
  2. ⬇️ 下载对应平台的源码包
  3. 📦 解压源码包
  4. 🔧 编译 Nginx(configure → make → make install)
  5. 📦 将安装后的 /usr/local/nginx 目录打包为 nginx-{version}.tar.gz
  6. 🧹 清理 downloads 目录(释放空间)
  7. 📝 更新并提交 latest_version.json 到 git 仓库(含重试机制)

输出格式

脚本以 JSON 格式输出结果:

{ "code": 200, "msg": "✅ 下载、编译、打包全部完成", "data": { "filename": "nginx-1.25.3.tar.gz", "version": "1.25.3" } }

状态码说明

  • 200: 成功完成所有流程(下载、编译、打包)
  • 201: 已是最新版本,跳过下载
  • 500: 操作失败

🛠️ 构建流程说明

定时任务触发:使用 CNB cron 定时拉取最新代码。 代码拉取:脚本自动从指定的 GitHub 仓库拉取 Nginx 最新源码。 CNB 构建:利用 CNB云原生构建 自动构建 Nginx。 编译打包:构建完成后,将编译产物打包为可发布的版本(如 .tar.gz)。 发布 Release

📂 Nginx 安装目录说明

本项目编译的 Nginx 使用默认配置安装,关键目录如下:

安装根目录

/usr/local/nginx/

关键目录结构

目录路径说明
主程序/usr/local/nginx/sbin/nginxNginx 可执行文件
配置文件/usr/local/nginx/conf/nginx.conf主配置文件
MIME 类型/usr/local/nginx/conf/mime.typesMIME 类型映射
HTML 文件/usr/local/nginx/html/默认网站根目录
默认首页/usr/local/nginx/html/index.html默认欢迎页面
错误页面/usr/local/nginx/html/50x.html错误页面
日志目录/usr/local/nginx/logs/日志文件存储
访问日志/usr/local/nginx/logs/access.log访问日志
错误日志/usr/local/nginx/logs/error.log错误日志
PID 文件/usr/local/nginx/logs/nginx.pid进程 ID 文件
临时文件/usr/local/nginx/temp/临时文件目录
客户端 body/usr/local/nginx/temp/client_body_temp客户端请求体临时文件
代理临时/usr/local/nginx/temp/proxy_temp代理临时文件
FastCGI/usr/local/nginx/temp/fastcgi_tempFastCGI 临时文件
uWSGI/usr/local/nginx/temp/uwsgi_tempuWSGI 临时文件
SCGI/usr/local/nginx/temp/scgi_tempSCGI 临时文件

配置文件说明

主配置文件位置

/usr/local/nginx/conf/nginx.conf

常用配置指令

  • worker_processes: 工作进程数
  • events: 连接处理配置
  • http: HTTP 服务器配置
  • server: 虚拟服务器配置
  • location: URL 路由配置

HTML 文件位置

默认网站根目录位于:

/usr/local/nginx/html/

您可以将网站文件放置在此目录下,或通过修改 nginx.conf 中的 root 指令更改网站根目录。

打包产物说明

构建完成后,会将整个 /usr/local/nginx 目录打包为:

nginx-{version}.tar.gz

安装 Nginx 到系统

方法一:解压到默认位置(推荐)

# 解压到 /usr/local/ 目录 tar -zxvf nginx-{version}.tar.gz -C /usr/local/

这会将 Nginx 安装到 /usr/local/nginx/ 目录。

方法二:解压到自定义位置

# 1. 创建目标目录 sudo mkdir -p /opt/nginx # 2. 解压到目标目录 tar -zxvf nginx-{version}.tar.gz -C /opt/ # 3. 创建软链接(可选) sudo ln -s /opt/nginx/nginx /usr/local/nginx

方法三:使用绝对路径运行

# 解压到任意目录 tar -zxvf nginx-{version}.tar.gz -C /path/to/your/directory/ # 使用绝对路径运行 /path/to/your/directory/nginx/sbin/nginx

配置环境变量(可选)

为了方便使用,可以将 Nginx 添加到 PATH:

# 编辑 ~/.bashrc 或 ~/.zshrc echo 'export PATH=/usr/local/nginx/sbin:$PATH' >> ~/.bashrc # 使配置生效 source ~/.bashrc # 之后就可以直接使用 nginx 命令 nginx -v

启动 Nginx

# 启动 /usr/local/nginx/sbin/nginx # 停止 /usr/local/nginx/sbin/nginx -s stop # 重启 /usr/local/nginx/sbin/nginx -s reload # 测试配置文件 /usr/local/nginx/sbin/nginx -t

About

本项目基于 Cloud Native Build (CNB) 云原生开发能力,实现基于Linux操作系统,定时拉取最新的github仓库代码并进行相关编译,并生成相应已编译完成的Nginx Release版本。无需手动配置环境依赖,实现定时发布功能