先给结论:当发布系统把 a.example.com 这类二级域名的配置改回旧值时,不要先改回去,而要先判断“谁在写”。最有效的做法是给当前配置打一个可识别的标记值,再触发一次发布,观察这个标记是否被覆盖、被谁覆盖。标记被覆盖说明有自动写入方,标记保留说明问题多半出在人工操作或缓存层。这一步的结果决定你接下来是查发布流水线、查配置中心权限,还是查 CDN 与 DNS 的读取链路。
二级域名本身只是主域之下的一层名字,例如 shop.example.com,它通常由 DNS 记录、证书绑定、CDN 回源配置和发布系统里的站点配置共同决定。发布系统覆盖回旧值,可能发生在写入阶段,也可能只是读取阶段看到了旧内容。这两类原因的排查方向完全不同。
区分方法很直接:在配置中心手动写入一个带时间戳的测试值,不经过发布系统,然后立刻读取实际响应。如果实际响应变成测试值,问题在读取链路;如果仍是旧值,问题在写入链路。
假设你的发布系统、配置中心和 CDN 都可能写入同一个二级域名配置。可以按下面的顺序做一次假设性验证,数字仅用于说明比较方法:
probe-20240101-a,记录修改时间。probe-20240101-b,这次跳过发布系统,只通过配置中心保存。这个动作的价值在于把“谁在写”从猜测变成可观察的差异。得到结果后,下一步就能收窄范围:覆盖来自发布系统,就去查流水线里的模板、变量和默认值;覆盖来自配置中心,就去查同步任务和定时脚本。
二级域名常被旧内容、旧系统或旧合作关系占用。处理时不要整段删除,而是先分类:
这里要注意一个常见误解:在 robots.txt 里禁止抓取,并不等于把页面从索引中移除。抓取限制和索引移除是两件事,前者不保证后者。同样,提交站点地图也不保证被收录。如果要让旧内容真正退出搜索结果,需要根据页面状态和实际返回内容分别处理,并分别核查不同搜索引擎的支持情况。
判断覆盖来源,靠的是几条能对上的证据,而不是单一现象。可以按下面这些线索交叉验证:
如果某项统计突然归零,比如某个路径的请求量降为零,这并不能单独证明配置处理正确。它也可能是流量转移、监控口径变化或采集中断造成的。需要结合上面几条证据一起判断。
拿你手里的一个二级域名页面作为对象,按这个顺序执行:先记录它当前的配置值和生效值,再打标记值并触发发布,观察是否被覆盖。根据结果决定是修流水线、修同步任务还是修缓存策略。修改后再次打标记验证,确认覆盖不再发生。最后再处理内容层面:保留有价值的路径,对无引用路径做下线或重定向,并单独核查索引状态。这样每一步的结果都会直接影响下一步该查哪里,而不是反复在同一个位置改配置。