外观
被控节点更新
当主控端升级或节点组件发布新版本时,需要在每台被控节点上执行一次更新。 更新脚本会自动下载最新组件,并保留站点配置、缓存与日志数据。
前置条件
- 节点已经按 被控节点安装 完成部署,且
ws_config_client.service处于运行状态 - 建议在业务低峰期执行,并提前确认主控端已升级到目标版本
一、下载更新程序
更新使用的是独立的更新包地址(注意路径中包含 update,与首次安装不同):
bash
curl -k --http1.1 \
-o /root/gincdn-install \
https://www.gincdn.cn/download/update/ubuntu/gincdn-install \
&& chmod +x /root/gincdn-install \
&& sudo /root/gincdn-install1
2
3
4
5
2
3
4
5
执行后可以看到部署工具的参数说明,其中比首次安装多了一项 --update:

更新版的部署工具,参数中多出 --update
| 对比项 | 首次安装 | 更新 |
|---|---|---|
| 下载地址 | /download/ubuntu/gincdn-install | /download/update/ubuntu/gincdn-install |
| 执行参数 | --master-url | --update |
注意地址差异
首次安装与更新的下载路径不同,请勿混用。 用错地址可能导致下载到的程序与当前节点版本不匹配。
二、执行更新
bash
sudo /root/gincdn-install --update1

执行 --update 开始更新节点组件
更新过程共 8 个步骤,脚本会逐步输出提示:
| 步骤 | 动作 | 说明 |
|---|---|---|
| 1 | 下载更新包 | 下载到 /root/Vx.y.z.zip |
| 2 | 备份 WAF 运行时数据 | 把 sites / cache / logs 备份到 /root/gincdn_waf_backup_<时间戳>/ |
| 3 | 解压更新包 | 解压到 /opt/gincdn |
| 4 | 解压 waf.zip | 文件落到 /opt/gincdn/waf |
| 5 | 清理压缩包 | 删除更新包与 waf.zip |
| 6 | 编译 WAF Lua 文件 | 生成运行时 Lua |
| 7 | 恢复运行时数据 | 把第 2 步备份的目录还原回去 |
| 8 | 清理 shell 历史记录 | 覆写全账户命令历史 |
结束时输出:
text
======== GinCdn 节点更新完成 ========
如需生效节点新组件,可按需执行:systemctl restart ws_config_client.service1
2
2
脚本参数说明:
text
GinCdn 部署工具(命令行模式)
用法:
gincdn-install --master-url <url> 完整部署并指定主控地址
gincdn-install --update-master-url <url> 更新主控地址
gincdn-install --update 更新节点组件(下载更新包并保留站点/缓存/日志数据)
gincdn-install --help 显示此帮助信息1
2
3
4
5
6
7
2
3
4
5
6
7
--update 会保留数据
--update 只更新节点组件(OpenResty、WAF 等程序文件), 不会清除站点配置、缓存文件与日志,因此可以在不重新接入节点的前提下完成升级。
三、更新后验证
先让新组件生效
脚本结束时会提示「如需生效节点新组件,可按需执行:systemctl restart ws_config_client.service」。 按提示重启一次,再往下逐项确认:
bash
systemctl restart ws_config_client.service1
1. 服务状态正常
bash
systemctl status ws_config_client.service1
确认输出为 Active: active (running)。
2. 主控地址未丢失
bash
grep MASTER_API_URL /opt/gincdn/conf/node_config.conf1
更新不应改动主控地址;若输出为空或与预期不符,用 --update-master-url 重新写入。
3. 服务仍在运行且站点可访问
bash
/usr/local/openresty/nginx/sbin/nginx -t1
配置语法检查通过后,重新加载一次:
bash
/usr/local/openresty/nginx/sbin/nginx -s reload1
然后从主控后台确认节点在线,并实际访问一个已下发的站点,确认加速与防护均正常。
四、备份与回退
更新会自动备份 WAF 运行时数据
第 2 步会把 /opt/gincdn/waf/ 下的 sites、cache、logs 备份到 /root/gincdn_waf_backup_<时间戳>/,第 7 步更新完成后再恢复回去。
备份目录不会自动删除,脚本会提示「确认站点正常后可手动删除」。 反复更新会在 /root 下持续堆积,确认站点正常后建议清理:
bash
# 查看历次更新留下的备份
ls -d /root/gincdn_waf_backup_*
# 确认站点运行正常后,删除指定备份(替换为实际时间戳)
rm -rf /root/gincdn_waf_backup_202609130151161
2
3
4
5
2
3
4
5
自动备份不等于一键回滚
脚本只备份 WAF 运行时数据,更新包(程序文件)本身没有回滚机制。 若业务对中断敏感,仍建议更新前额外做两件事:
- 对节点做一次快照(云服务器控制台的磁盘快照最省事)
- 备份节点配置目录:
bash
tar -czf /root/gincdn-conf-backup-$(date +%F).tar.gz /opt/gincdn/conf1
- 记录当前版本与主控地址,便于后续比对
五、批量更新建议
节点数量较多时,建议:
- 先选一台非核心节点更新并观察 10 ~ 30 分钟,确认无异常后再全量推进
- 分批执行,避免所有节点同时重启导致整体承载能力下降
- 更新期间关注主控后台的节点在线状态与站点实时监控
