4.6 KiB
Rednote 生产发布记录 · 2026-10-19
状态:已发布并通过上线检查。
- 入口:https://1me.xajuzi.com/rednote/;后台:https://1me.xajuzi.com/rednote/admin.html(沿用原 Basic Auth)。
- 发布版本:
20261019-225927-4af825a;运行代码提交:4af825a5e422c633c43dd0df3923ada1e6a8f760。 - 发布包 SHA256:
c8d3cc8f9d68b7214eafc3a3c832c09854d07f6c3b3a9f53a6bdfb0397e4933f;148个运行文件及1份哈希清单,线上逐文件校验一致。 - 目录:
/home/ubuntu/juzi-rednote/releases/20261019-225927-4af825a;current指向该版本。 - 服务:
juzi-rednote.service,已启用开机启动,仅监听127.0.0.1:8081;数据:/home/ubuntu/juzi-rednote-data。 - 凭据:
/etc/juzi/rednote.env,root所有、权限600;只在服务器内部提取现有 Face++ 凭据,没有复制微信配置或下载密钥。 - Nginx及基线备份:
/etc/juzi-deploy-backup/rednote-20261019-225927-4af825a/,含nginx-juzi.before.conf、baseline.json、installed.json、published.json。
原入口保护
原服务目录 /home/ubuntu/juzi 没有 git pull、文件覆盖、数据迁移或服务重启,仍为 fc9f2519bdc50595556b244cdecf695ae90ba9eb,工作区干净。原进程PID始终为689641,自动重启次数0。旧systemd主文件及微信drop-in哈希一致。
新服务独立运行;实际检查其挂载命名空间中 /home/ubuntu/juzi 为只读。Nginx只在原HTTPS server中增加 /rednote 路由块,移除该块可还原原文件;配置检查通过后平滑reload。发布前Nginx文件SHA256:6c21c06e22c953628049601adb4bb8726c22f45e16b4973988c36115beefb484;发布后:5d0aa501340566d6eb8a0cccef0944fb8eccaece3c1a5809b87a57d1490ee7bf。
发布后原 /state/ 页面、健康接口、微信授权配置、域名验证文件的内容哈希与发布前一致;微信登录开关保持启用。原后台仍要求鉴权,私有数据不能公网直读。
验证结果和边界
本地Rednote后端5项测试及浏览器集成通过,覆盖最近5份报告、真实共享页面的样本检测/历史重载、所有者隔离、后台API/照片/导出子路径、同域双入口隔离、限流和数据路径保护。淘宝16项测试、共享公式一致性检查,以及原H5游客隐私、微信授权与退出、报告持久化、异步侧脸4组回归通过。
原H5较旧的两个单元断言 tone-dark-circle.js:13、factual-copy.js:9 在发布前HEAD也不通过,属于既有期望值/文案差异。本次未修改相关评分、文案实现,没有为通过断言调整业务结论。
线上通过:
- 新入口HTTPS页面、静态资源、健康和账号配置;不展示微信登录,不开放微信/淘宝登录API。
- 未同意隐私前不创建身份;同意后Cookie为Secure、HttpOnly、SameSite=Lax、
Path=/rednote/、30天。 - 关闭并重建浏览器上下文、单独重启新服务后,同一Cookie仍恢复原身份,档案缓存及历史入口正常。
- 清除身份的取消/确认、服务端会话撤销、旧Cookie重放失败;原入口仍显示微信登录、没有继承新身份。
- 新旧后台页面/API/导出未鉴权返回401;私有数据和服务器源码路径不可访问;跨域创建身份返回403。
- 上线浏览器检查无JS异常、无资源失败;新服务自动重启次数0,启动/检查日志无错误。仅为持久化检查主动重启过新服务一次,原服务未重启。
线上未调用收费检测API,自动化没有代替手机摄像头实测或真实微信账号授权验收。发布后请在目标手机/内置浏览器完成拍摄、真实报告生成和关闭重开后的历史查看,并从微信打开原 /state/ 核对真实授权。验证只新增1个空浏览器身份,检查结束已撤销其会话,没有测试照片或报告写入线上。
回退
备份中的 nginx-juzi.before.conf 是新增路由前的完整配置。先核对当前配置仍为本次发布后的哈希;若此后还有其他配置变更,应仅移除本次 BEGIN rednote ... END rednote 块,保留后续变更。
在确认没有后续变更的前提下,先另存当前Nginx配置,再将 nginx-juzi.before.conf 安装回 /etc/nginx/sites-available/juzi。执行 sudo nginx -t,通过后执行 sudo systemctl reload nginx,并核对 /state/ 健康;之后执行 sudo systemctl disable --now juzi-rednote.service。若配置检查失败,恢复刚另存的配置并再次检查,不reload失败配置。
保留新入口发布目录及 /home/ubuntu/juzi-rednote-data,不删除数据,不改原服务,不重启原Node进程。