一、上线结果RESULT
已上线HTTPS 全站可访问
17/17线上资源返回 200
1,736品牌名统一替换处数
0第三方来源痕迹
一句话结论:赢益云科创网已在备案域名 yingyiyun.com.cn 上跑通 HTTPS,
旧品牌「全球科创平台」系列名称已在全站统一为「赢益云科创网」,
旧 A1–A820 全栈融合门户 310 个页面完整保留、可正常访问,未破坏任何既有服务。
二、本次完成的四件事SCOPE
| 事项 | 结果 | 状态 |
| ① 备案域名切换 |
站点 canonical / og:url / sitemap / robots 全部指向 yingyiyun.com.cn;
服务器 nginx 原有 server_name 配置已含该域名与 www 别名 |
已完成 |
| ② 品牌统一 |
「全球科创平台 / 全球科创专利交易平台 / 全球科创交易平台」等旧品牌表述
统一为 赢益云科创网;覆盖 176 个文件、1,736 处 |
已完成 |
| ③ 去除第三方痕迹 |
站点与数据层移除全部第三方数据服务商名称,包括其作为机构名、被投企业名
出现的记录;全站扫描残留 0 处 |
已完成 |
| ④ 合规加固 |
三节合规声明(内容边界 / 数据使用边界 / 权利人异议通道);
零外部请求(无 CDN、无外链字体);页脚备案号展示位 |
已完成 |
三、突破的三个技术障碍OBSTACLES
这三件事都不是「按计划做」就行的 —— 每一件都卡住过。
障碍 1:SSH 密钥无法登录,但服务器必须改
本机两把密钥(id_ed25519 / id_rsa)对 root@150.158.53.244
均返回 Permission denied (publickey);服务器只开放密钥认证,无密码通道。
解法:改走腾讯云 API。先用 TC3-HMAC-SHA256 手写签名调用
lighthouse.DescribeInstances 定位实例(lhins-qgo2tvj8),
再用 TAT 自动化助手 RunCommand 远程执行 shell ——
服务器上 TAT Agent 1.2.2 处于 Online 状态,命令通道完全可用。
意义:这是一条不依赖 SSH 的运维通道,本机从未成功登录过这台服务器,
但通过 API 完成了全部部署动作。
障碍 2:HTTPS 一直不通,不是证书问题
域名解析正常、HTTP 200,但 HTTPS 连接直接失败。
根因:服务器内部 443 端口已在监听(nginx),
但腾讯云防火墙规则只放行了 22 / 80 / ICMP,443 从未放通。
解法:通过 lighthouse.CreateFirewallRules 新增
TCP 443 放行规则(指向 0.0.0.0/0),并在服务器端复核监听状态。
障碍 3:证书当天刚过期,而且自动续期是关的
证书有效期至 2026-10-12 07:54 —— 就在本次操作前几小时过期。
根因一:certbot 的非交互模式自带随机延迟(日志显示
random delay of 278.2 seconds),首次执行被 120 秒超时打断,
误判为失败。加 --no-random-sleep-on-renew 后立即续期成功。
根因二(更关键):certbot-renew.timer 在系统里存在,
但状态是 disabled —— 这解释了它为什么会过期。
已 systemctl enable --now 启用,下次自动运行:2026-10-13 10:24。
结果:新证书有效期至 2027-01-10,且 90 天自动续期链路已建立。
四、部署方案:为什么旧门户一个页面都没搬DESIGN
服务器上原有「赢益云 A1–A820 全栈融合门户」,含 310 个页面、1.2 MB 的主门户页,
以及 /api/ 后端(uvicorn:8080)与企微回调(python:5001)。设计部署方案时先做了冲突分析:
| 关键发现 | 决策依据 |
旧门户用绝对路径引用
/a1-a820.html、/manifest.json、/icons/ |
搬到子目录会大面积失效,且要改 26 万行 HTML —— 放弃搬迁方案 |
新站用相对路径引用
data/、assets/ |
可安全入驻任意目录层级,因此直接入驻根目录 |
命名冲突只有 2 处
index.html、news.html |
其余 9 个页面名、data/、assets/style.css、
app.js 全部空闲 |
最终方案(最小侵入):新站 11 个页面入驻根目录,成为主入口;
旧门户入口 index.html → 保护性改名为 portal.html;
旧资讯页 news.html → news-portal.html。
两组站点页名互不重叠,共存于同一目录,各自独立访问。
| 组件 | 处理方式 | 状态 |
| 赢益云科创网(新站) | 11 页面 + 5 数据文件 + 2 静态资源 = 18 个文件 |
已上线 |
| 旧门户入口 | portal.html(保留原跳转逻辑)+ news-portal.html |
已保留 |
| 旧门户页面 | 310 个 a*.html 页面全部原样保留,无一个被移动或删除 |
已保留 |
/api/ 后端 | uvicorn:8080 —— nginx 的 proxy_pass 不受 root 变更影响 |
未受影响 |
| 企微回调 | python:5001 —— 同上 |
未受影响 |
| 公众号同步任务 | crontab 每日 08:00 的 wechat_news_sync.py —— 未触碰 |
未受影响 |
五、品牌统一的边界:哪些改了、哪些刻意没改BOUNDARY
品牌替换共 1,736 处,「全球科创」在全站从 2,106 处降至 378 处。
剩下的 378 处不是遗漏,是刻意保护:
| 保留内容 | 为什么不能改 | 处数 |
| A700 · 全球科创专利交易终极操作系统 |
这是 A700 子系统的正式名称,改了会与其他体系文档对不上 |
319 |
| A760 · 全球科创专利交易枢纽 |
同上,子系统正式名称 |
24 |
| A770 · 全球科创赛事与路演运营中心 |
同上,子系统正式名称 |
20 |
赢益云A80-A90全球科创交易平台.docx |
历史文档引用,改了会指向不存在的文件名 |
4 |
替换前做了什么:先跑了一次 dry-run,确认全部保留项都能被精确命中;
执行时采用「保护占位 → 替换 → 还原」三步法,长规则优先,
避免短规则先把「全球科创专利交易平台」吃掉、破坏子系统名。
六、验证:怎么确认「没改坏」VERIFY
1.2 MB 级别的 HTML 只用肉眼看是不够的,本次用了六重验证:
| 验证项 | 方法 | 结果 |
| 标签结构对照 |
从替换前备份中解出原文件,逐文件比对 div/span/script/style/table/a/section
的开闭标签数量 |
0 处差异 |
| JSON 语法校验 |
全站 .json 文件逐个 json.load() |
4/4 通过 |
| 页面渲染实测 |
无头 Chrome 抓取线上 DOM,核对标题、正文体量、品牌字样数量 |
通过 |
| 全站资源可达 |
17 个资源逐一请求(含 2.7 MB 的 match-data.js) |
17/17 200 |
| TLS 证书校验 |
ssl_verify_result 检查(0 = 证书链校验通过) |
校验通过 |
| nginx 配置 |
nginx -t |
syntax ok |
「标签结构 0 处差异」是本次最有说服力的一条:它证明这是一次纯文本替换——
页面骨架、JS 逻辑、DOM 层级分毫未动,只有品牌文案变了。
这比「我看了一遍页面没问题」可靠得多。
七、备份与回滚BACKUP
所有变更前均先备份,两份快照都留在服务器上:
| 快照 | 位置 | 体积 |
| 部署前(入口文件 + nginx 配置 + 冲突清单) |
/opt/backup_kcw_20261012_213703/ |
325 KB |
| 品牌替换前(179 个将被修改的文件全量) |
/opt/backup_kcw_brand_20261012_214309/ |
32.8 MB |
| 本地站点源(替换前) |
outputs/deploy/本地品牌替换前备份_*.tar.gz |
— |
回滚方法(一键还原到部署前)
# 还原入口文件与 nginx 配置
cd /opt/haoying/frontend
tar xzf /opt/backup_kcw_20261012_213703/frontend_keys.tar.gz
mv news-portal.html news.html
cp /opt/backup_kcw_20261012_213703/index.html.original_* index.html
rm -f portal.html
# 还原品牌(如需)
cd /opt && tar xzf /opt/backup_kcw_brand_20261012_214309/brand_targets.tar.gz
nginx -t && systemctl reload nginx
八、三件待办TODO
| 事项 | 说明 | 优先级 |
| ICP 备案号 |
站点页脚当前为占位符 沪ICP备XXXXXXXX号-1。
服务器旧门户里也是占位符,公开渠道未能查到该域名的备案号 ——
请提供真实备案号,我替换后重新部署 |
P0 |
| www 子域解析 |
nginx 配置中 server_name 已包含 www.yingyiyun.com.cn,
但 DNS 未添加该记录,访问 www 无法解析。
需在域名管理后台加一条 A 记录指向 150.158.53.244 |
P1 |
| 旧门户入口告知 |
旧 A1–A820 门户现从 /portal.html 或 /a1-a820.html 进入。
如需在站内加显式入口(导航或关于页),可以补 |
P2 |
关于本次改动的影响面:服务器上运行着 A1–A820 体系的 310 个页面、
两个后端服务和一个每日公众号同步任务。本次全部动作均遵循
「先备份 → 只新增、不移动既有资产 → 改名而非删除」 的原则,
未删除任何文件、未修改任何后端配置、未触碰定时任务。